Package org.jitsi.util.xml
Class XMLUtils
- java.lang.Object
-
- org.jitsi.util.xml.XMLUtils
-
- Direct Known Subclasses:
XMLConfUtils
public class XMLUtils extends Object
Common XML Tasks- Author:
- Emil Ivov, Damian Minkov
-
-
Constructor Summary
Constructors Constructor Description XMLUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static DocumentcreateDocument()Creates W3C Document.static DocumentcreateDocument(String xml)Creates W3C Document from the xml.static DocumentcreateDocument(String xml, boolean allowExternalEntities)Creates W3C Document from the xml.static StringcreateXml(Document document)Creates XML from W3C Document from the xml.static voiddisableExternalEntities(DocumentBuilderFactory factory)Tries to set the features which disable inclusion of XML external entities and DOCTYPE declarations.static ElementfindChild(Element parent, String tagName)Returns the child element with the specified tagName for the specified parent element.static List<Element>findChildren(Element parent, String tagName)Returns the children elements with the specified tagName for the specified parent element.static StringgetAttribute(Node node, String name)Extracts from node the attribute with the specified name.static StringgetCData(Element element)Extract the CDATA content of the specified element.static CDATASectiongetCDataNode(Element element)Returns element's CDATA child node (if it has one).static NodegetChildByType(Element element, short nodeType)Returns first of the element's child nodes that is of type nodeType.static StringgetNamespaceUri(Node node)Gets the node namespace.static StringgetText(Element parentNode)Extracts the String content of a TXT element.static TextgetTextNode(Element element)Returns element's TEXT child node (if it has one).static booleanhasChildElements(Element element)Indicates whether element has any child element.static voidindentedWriteXML(Document doc, OutputStream out)A simple implementation of XML writing that also allows for indentation.static booleanisStandartXmlNamespace(String namespace)Indicates whether namespace is one of the standart xml namespace.static ElementlocateElement(Element root, String tagName, String keyAttributeName, String keyAttributeValue)Looks through all child elements of the specified root (recursively) and returns the first element that corresponds to all parameters.static List<Element>locateElements(Element root, String tagName, String keyAttributeName, String keyAttributeValue)Looks through all child elements of the specified root (recursively) and returns the elements that corresponds to all parameters.static DocumentBuilderFactorynewDocumentBuilderFactory()Creates and returns a new DocumentBuilderFactory instance, and sets the default set of features.static DocumentBuilderFactorynewDocumentBuilderFactory(boolean allowExternalEntities)Creates and returns a new DocumentBuilderFactory instance, and sets the default set of features.static voidprintChildElements(Element root, PrintStream out, boolean recurse, String prefix)Whenever you'd need to print a configuration node and/or its children.static voidsetCData(Element element, String data)Sets data to be the CDATA content of elementstatic voidsetText(Element parentNode, String data)Sets data to be the TEXT content of elementstatic voidwriteXML(Document document, File out)Writes the specified document to the given file adding indentatation.static voidwriteXML(Document document, Writer writer)Writes the specified document to the given file adding indentatation.static voidwriteXML(Document document, StreamResult streamResult, String doctypeSystem, String doctypePublic)Writes the specified document to the given file adding indentatation.
-
-
-
Method Detail
-
getAttribute
public static String getAttribute(Node node, String name)
Extracts from node the attribute with the specified name.- Parameters:
node- the node whose attribute we'd like to extract.name- the name of the attribute to extract.- Returns:
- a String containing the trimmed value of the attribute or null if no such attribute exists
-
getText
public static String getText(Element parentNode)
Extracts the String content of a TXT element.- Parameters:
parentNode- the node containing the data that we'd like to get.- Returns:
- the string contained by the node or null if none existed.
-
setText
public static void setText(Element parentNode, String data)
Sets data to be the TEXT content of element- Parameters:
parentNode- the parent element.data- the data to set.
-
setCData
public static void setCData(Element element, String data)
Sets data to be the CDATA content of element- Parameters:
element- the parent element.data- the data to set.
-
getCData
public static String getCData(Element element)
Extract the CDATA content of the specified element.- Parameters:
element- the element whose data we need- Returns:
- a String containing the CDATA value of element.
-
getCDataNode
public static CDATASection getCDataNode(Element element)
Returns element's CDATA child node (if it has one).- Parameters:
element- the element whose CDATA we need to get.- Returns:
- a CDATASection object containing the specified element's CDATA content
-
getTextNode
public static Text getTextNode(Element element)
Returns element's TEXT child node (if it has one).- Parameters:
element- the element whose TEXT we need to get.- Returns:
- a Text object containing the specified element's text content.
-
getChildByType
public static Node getChildByType(Element element, short nodeType)
Returns first of the element's child nodes that is of type nodeType.- Parameters:
element- the element whose child we need.nodeType- the type of the child we need.- Returns:
- a child of the specified nodeType or null if none was found.
-
writeXML
public static void writeXML(Document document, File out) throws IOException
Writes the specified document to the given file adding indentatation. The default encoding is UTF-8.- Parameters:
out- the output Filedocument- the document to write- Throws:
IOException- in case a TransformerException is thrown by the underlying Transformer.
-
writeXML
public static void writeXML(Document document, Writer writer) throws IOException
Writes the specified document to the given file adding indentatation. The default encoding is UTF-8.- Parameters:
writer- the writer to use when writing the Filedocument- the document to write- Throws:
IOException- in case a TransformerException is thrown by the underlying Transformer.
-
writeXML
public static void writeXML(Document document, StreamResult streamResult, String doctypeSystem, String doctypePublic) throws IOException
Writes the specified document to the given file adding indentatation. The default encoding is UTF-8.- Parameters:
streamResult- the streamResult object where the document should be writtendocument- the document to writedoctypeSystem- the doctype system of the xml document that we should record in the file or null if none is specified.doctypePublic- the public identifier to be used in the document type declaration.- Throws:
IOException- in case a TransformerException is thrown by the underlying Transformer.
-
indentedWriteXML
public static void indentedWriteXML(Document doc, OutputStream out)
A simple implementation of XML writing that also allows for indentation.- Parameters:
doc- the Document that we will be writing.out- an OutputStream to write the document through.
-
printChildElements
public static void printChildElements(Element root, PrintStream out, boolean recurse, String prefix)
Whenever you'd need to print a configuration node and/or its children.- Parameters:
root- the root node to print.out- the print stream that should be used to outpurecurse- booleanprefix- String
-
findChild
public static Element findChild(Element parent, String tagName)
Returns the child element with the specified tagName for the specified parent element.- Parameters:
parent- The parent whose child we're looking for.tagName- the name of the child to find- Returns:
- The child with the specified name or null if no such child was found.
- Throws:
NullPointerException- if parent or tagName are null
-
findChildren
public static List<Element> findChildren(Element parent, String tagName)
Returns the children elements with the specified tagName for the specified parent element.- Parameters:
parent- The parent whose children we're looking for.tagName- the name of the child to find- Returns:
- List of the children with the specified name
- Throws:
NullPointerException- if parent or tagName are null
-
locateElement
public static Element locateElement(Element root, String tagName, String keyAttributeName, String keyAttributeValue)
Looks through all child elements of the specified root (recursively) and returns the first element that corresponds to all parameters.- Parameters:
root- the Element where the search should begintagName- the name of the node we're looking forkeyAttributeName- the name of an attribute that the node has to havekeyAttributeValue- the value that attribute must have- Returns:
- the Element in the tree under root that matches the specified parameters.
- Throws:
NullPointerException- if any of the arguments is null.
-
locateElements
public static List<Element> locateElements(Element root, String tagName, String keyAttributeName, String keyAttributeValue)
Looks through all child elements of the specified root (recursively) and returns the elements that corresponds to all parameters.- Parameters:
root- the Element where the search should begintagName- the name of the node we're looking forkeyAttributeName- the name of an attribute that the node has to havekeyAttributeValue- the value that attribute must have- Returns:
- list of Elements in the tree under root that match the specified parameters.
- Throws:
NullPointerException- if any of the arguments is null.
-
isStandartXmlNamespace
public static boolean isStandartXmlNamespace(String namespace)
Indicates whether namespace is one of the standart xml namespace.- Parameters:
namespace- the namespace to analyze.- Returns:
- true if namespace is one of the standart xml namespace otherwise false.
-
getNamespaceUri
public static String getNamespaceUri(Node node)
Gets the node namespace.- Parameters:
node- the Element or Attr node to analyze.- Returns:
- the node namespace or null.
-
hasChildElements
public static boolean hasChildElements(Element element)
Indicates whether element has any child element.- Parameters:
element- the namespace to analyze.- Returns:
- true if element has any child element otherwise false.
-
createDocument
public static Document createDocument() throws Exception
Creates W3C Document.- Returns:
- the W3C Document.
- Throws:
Exception- is there is some error during operation.
-
createDocument
public static Document createDocument(String xml, boolean allowExternalEntities) throws Exception
Creates W3C Document from the xml.- Parameters:
xml- the xml that needs to be converted.allowExternalEntities- whether parsing of XML external entities and DOCTYPE declarations should be allowed.- Returns:
- the W3C Document.
- Throws:
Exception- is there is some error during operation.
-
createDocument
public static Document createDocument(String xml) throws Exception
Creates W3C Document from the xml.- Parameters:
xml- the xml that needs to be converted.- Returns:
- the W3C Document.
- Throws:
Exception- is there is some error during operation.
-
createXml
public static String createXml(Document document) throws Exception
Creates XML from W3C Document from the xml.- Parameters:
document- the xml that needs to be converted.- Returns:
- the XML.
- Throws:
Exception- is there is some error during operation.
-
newDocumentBuilderFactory
public static DocumentBuilderFactory newDocumentBuilderFactory() throws ParserConfigurationException
Creates and returns a new DocumentBuilderFactory instance, and sets the default set of features.- Returns:
- the created factory
- Throws:
ParserConfigurationException- if setting a feature fails.
-
newDocumentBuilderFactory
public static DocumentBuilderFactory newDocumentBuilderFactory(boolean allowExternalEntities) throws ParserConfigurationException
Creates and returns a new DocumentBuilderFactory instance, and sets the default set of features.- Parameters:
allowExternalEntities- whether parsing of XML external entities and DOCTYPE declarations should be allowed.- Returns:
- the created factory
- Throws:
ParserConfigurationException- if setting a feature fails.
-
disableExternalEntities
public static void disableExternalEntities(DocumentBuilderFactory factory) throws ParserConfigurationException
Tries to set the features which disable inclusion of XML external entities and DOCTYPE declarations.- Parameters:
factory- the factory- Throws:
ParserConfigurationException- if setting any of the features fails.
-
-