Initial import.
This commit is contained in:
commit
b865c6b453
1 changed files with 183 additions and 0 deletions
183
TextToHTML.java
Normal file
183
TextToHTML.java
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
/*
|
||||||
|
* @(#)TextToHTML.java
|
||||||
|
*
|
||||||
|
* Copyright (C) 2002-2003 by Erik C. Thauvin (erik@thauvin.net)
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Donated to the Roller Weblogger project for publication under
|
||||||
|
* the terms of the Roller Software License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//package com.imacination.jtalk;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts/encodes text to HTML or XML.
|
||||||
|
*
|
||||||
|
* @author Erik C. Thauvin
|
||||||
|
*
|
||||||
|
* @created October 31, 2002
|
||||||
|
*/
|
||||||
|
public class TextToHTML
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The main program usage.
|
||||||
|
*/
|
||||||
|
private static final String USAGE = "Usage: java " + TextToHTML.class.getName() + " [-xml] <text-to-convert>";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a character to HTML or XML entity.
|
||||||
|
*
|
||||||
|
* @param ch The character to convert.
|
||||||
|
* @param xml Convert the character to XML if set to true.
|
||||||
|
*
|
||||||
|
* @return The converted string.
|
||||||
|
*/
|
||||||
|
public static final String charToHTML(char ch, boolean xml)
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
|
||||||
|
// Convert left bracket
|
||||||
|
if (ch == '<')
|
||||||
|
{
|
||||||
|
return ("<");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert left bracket
|
||||||
|
else if (ch == '>')
|
||||||
|
{
|
||||||
|
return (">");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert ampersand
|
||||||
|
else if (ch == '&')
|
||||||
|
{
|
||||||
|
return ("&");
|
||||||
|
}
|
||||||
|
|
||||||
|
// High-ASCII character
|
||||||
|
else if (ch >= 128)
|
||||||
|
{
|
||||||
|
c = ch;
|
||||||
|
|
||||||
|
return ("&#" + c + ';');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert double quote
|
||||||
|
else if (xml && (ch == '"'))
|
||||||
|
{
|
||||||
|
return (""");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert single quote
|
||||||
|
else if (xml && (ch == '\''))
|
||||||
|
{
|
||||||
|
return ("'");
|
||||||
|
}
|
||||||
|
|
||||||
|
// No conversion
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Return character as string
|
||||||
|
return (String.valueOf(ch));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The main program for the TextToHtml class.
|
||||||
|
*
|
||||||
|
* @param args The command line arguments.
|
||||||
|
*/
|
||||||
|
public static final void main(String[] args)
|
||||||
|
{
|
||||||
|
if (args.length > 0)
|
||||||
|
{
|
||||||
|
boolean xml = false;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
if (args[0].startsWith("-x"))
|
||||||
|
{
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
|
||||||
|
xml = true;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
final StringBuffer cmdline = new StringBuffer();
|
||||||
|
|
||||||
|
for (; i < args.length; i++)
|
||||||
|
{
|
||||||
|
if (cmdline.length() != 0)
|
||||||
|
{
|
||||||
|
cmdline.append(' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
cmdline.append(args[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(textToHTML(cmdline.toString(), xml));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a text string to HTML or XML entities.
|
||||||
|
*
|
||||||
|
* @param text The string to convert.
|
||||||
|
* @param xml Convert the string to XML if set to true.
|
||||||
|
*
|
||||||
|
* @return The converted string.
|
||||||
|
*/
|
||||||
|
public static final String textToHTML(String text, boolean xml)
|
||||||
|
{
|
||||||
|
final StringBuffer html = new StringBuffer();
|
||||||
|
|
||||||
|
// Loop thru each characters of the text
|
||||||
|
for (int i = 0; i < text.length(); i++)
|
||||||
|
{
|
||||||
|
// Convert character to HTML/XML
|
||||||
|
html.append(charToHTML(text.charAt(i), xml));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return HTML/XML string
|
||||||
|
return html.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a text string to HTML or XML entities.
|
||||||
|
*
|
||||||
|
* @param text The string to convert.
|
||||||
|
*
|
||||||
|
* @return The converted string.
|
||||||
|
*/
|
||||||
|
public static final String textToHTML(String text)
|
||||||
|
{
|
||||||
|
return textToHTML(text, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a text string to XML entities.
|
||||||
|
*
|
||||||
|
* @param text The string to convert.
|
||||||
|
*
|
||||||
|
* @return The converted string.
|
||||||
|
*/
|
||||||
|
public static final String textToXML(String text)
|
||||||
|
{
|
||||||
|
return textToHTML(text, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints the usage and exits.
|
||||||
|
*/
|
||||||
|
private static final void usage()
|
||||||
|
{
|
||||||
|
System.err.println(USAGE);
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue