public final class XMLUtil extends Object
The GNU Lesser General Public License for details.
Modifier and Type | Field and Description |
---|---|
private static PropertyMap |
badEntities |
private static Set<String> |
goodEntities |
private static Pattern |
invalidCharacterPattern
Pattern that negates the allowable XML 4 byte unicode characters.
|
private static org.slf4j.Logger |
log
The log stream
|
private static Pattern |
openHTMLTagPattern
Pattern that matches open <br>,<hr> and <img> tags.
|
private static Pattern |
validCharacterEntityPattern
Pattern for numeric entities.
|
Modifier | Constructor and Description |
---|---|
private |
XMLUtil()
Prevent instantiation
|
Modifier and Type | Method and Description |
---|---|
static String |
cleanAllCharacters(String broken)
Remove all invalid characters in the input, replacing them with a space.
|
static String |
cleanAllEntities(String broken)
For each entity in the input that is not allowed in XML, replace the
entity with its unicode equivalent or remove it.
|
static String |
cleanAllTags(String broken)
XML parse failed, so we can try getting rid of all the tags and having
another go.
|
static String |
closeEmptyTags(String broken)
Common HTML tags such as <br>,<hr> and <img> may be
left open causing XML parsing to fail.
|
static void |
debugSAXAttributes(Attributes attrs)
Show the attributes of an element as debug
|
static String |
escape(String s)
Normalizes the given string
|
static String |
getAttributeName(Attributes attrs,
int index)
Get the full name of the attribute, including the namespace if any.
|
static org.jdom2.Document |
getDocument(String subject)
Get and load an XML file from the classpath and a few other places into a
JDOM Document object.
|
private static String |
handleEntity(String entity)
Replace entity with its unicode equivalent, if it is not a valid XML
entity.
|
static String |
recloseTags(String broken)
Strip all closing tags from the end of the XML fragment, and then
re-close all tags that are open at the end of the string.
|
static String |
writeToString(SAXEventProvider provider)
Serialize a SAXEventProvider into an XML String
|
private static PropertyMap badEntities
private static Pattern validCharacterEntityPattern
private static Pattern invalidCharacterPattern
private static Pattern openHTMLTagPattern
private static final org.slf4j.Logger log
public static org.jdom2.Document getDocument(String subject) throws org.jdom2.JDOMException, IOException
subject
- The name of the desired resource (without any extension)IOException
- if there is a problem reading the fileorg.jdom2.JDOMException
- If the resource is not valid XMLpublic static String writeToString(SAXEventProvider provider) throws SAXException
provider
- The source of SAX eventsSAXException
public static String getAttributeName(Attributes attrs, int index)
attrs
- the collection of attributesindex
- the index of the desired attributepublic static void debugSAXAttributes(Attributes attrs)
attrs
- public static String escape(String s)
s
- public static String cleanAllEntities(String broken)
broken
- the string to handle entitiespublic static String cleanAllCharacters(String broken)
broken
- the string to be cleanedpublic static String recloseTags(String broken)
broken
- the string to be cleaned.null
if the string could not be
cleaned due to more broken XMLpublic static String closeEmptyTags(String broken)
broken
- the string to be cleanedpublic static String cleanAllTags(String broken)
broken
- private static String handleEntity(String entity)
entity
- the entity to be replaced