Package ghidra.util.xml
Class XmlUtilities
java.lang.Object
ghidra.util.xml.XmlUtilities
A set of utility methods for working with XML.
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic class
- 
Field SummaryFields
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic org.jdom.ElementbyteArrayToXml(byte[] bytes) Converts the specified byte array into an XML element.static org.jdom.input.SAXBuildercreateSecureSAXBuilder(boolean validate, boolean needsDTD) Create aSAXBuilderthat is not susceptible to XXE.static SAXParserFactorycreateSecureSAXParserFactory(boolean needsDTD) Create aSAXParserFactorythat is not susceptible to XXE.static StringConverts any special or reserved characters in the specified XML string into the equivalent Unicode encoding.static org.jdom.ElementfromString(String s) Convert a String into a JDOMElement.static List<org.jdom.Element> getChildren(org.jdom.Element ele, String childName) Type-safe way of getting a list ofElements from JDom.static booleanTests a string for characters that would cause a problem if added to an xml attribute or element.static booleanparseBoolean(String boolStr) Parses the given string into a boolean value.static intparseBoundedInt(String intStr, int minValue, int maxValue) Parses the specified string as a decimal number, returning its integer value.static intparseBoundedIntAttr(org.jdom.Element ele, String attrName, int minValue, int maxValue) Parses the required attribute as a decimal number, returning its integer value.static longparseBoundedLong(String longStr, long minValue, long maxValue) Parses the specified string as a decimal number, returning its long integer value.static longparseBoundedLongAttr(org.jdom.Element ele, String attrName, long minValue, long maxValue) Parses the required attribute as a decimal number, returning its long integer value.static intParse the given string as either a hex number (if it starts with 0x) or a decimal number.static intParses the optional specified string as a decimal number, returning its integer value.static longParse the given string as either a hex number (if it starts with 0x) or a decimal number.static booleanparseOptionalBooleanAttr(org.jdom.Element ele, String attrName, boolean defaultValue) Parses the optional attribute as a boolean value, returning its value or the specified defaultValue if missing.static intparseOptionalBoundedInt(String intStr, int defaultValue, int minValue, int maxValue) Parses the optional specified string as a decimal number, returning its integer value, or defaultValue if the string is null.static intparseOptionalBoundedIntAttr(org.jdom.Element ele, String attrName, int defaultValue, int minValue, int maxValue) Parses an optional attribute as a decimal number, returning its integer value, or the defaultValue if the attribute is null.static longparseOptionalBoundedLongAttr(org.jdom.Element ele, String attrName, long defaultValue, long minValue, long maxValue) Parses the required attribute as a decimal number, returning its long integer value.static StringparseOverlayName(String addrStr) Parses the overlay name from the specified address string.static org.jdom.DocumentRead a File and convert to jdom xml doc.static org.jdom.DocumentRead a File and convert to jdom xml doc.static StringrequireStringAttr(org.jdom.Element ele, String attrName) Throws anIOExceptionwith a verbose explanation if the requested attribute is not present or is empty.static voidsetIntAttr(org.jdom.Element ele, String attrName, int attrValue) Sets an integer attribute on the specified element.static voidsetStringAttr(org.jdom.Element ele, String attrName, String attrValue) Sets a string attribute on the specified element.static StringtoString(org.jdom.Element root) Converts the specified XML element into a String.static StringunEscapeElementEntities(String escapedXMLString) Converts any escaped character entities into their unescaped character equivalents.static voidwriteDocToFile(org.jdom.Document doc, File dest) Writes a JDOM XMLDocumentto aFile.static voidwritePrettyDocToFile(org.jdom.Document doc, File dest) static byte[]xmlToByteArray(org.jdom.Element root) Converts the specified XML element into a byte array.
- 
Field Details- 
FEATURE_DISALLOW_DTD- See Also:
 
- 
FEATURE_EXTERNAL_GENERAL_ENTITIES- See Also:
 
- 
FEATURE_EXTERNAL_PARAMETER_ENTITIES- See Also:
 
 
- 
- 
Constructor Details- 
XmlUtilitiespublic XmlUtilities()
 
- 
- 
Method Details- 
escapeElementEntitiesConverts any special or reserved characters in the specified XML string into the equivalent Unicode encoding.- Parameters:
- xml- the XML string
- Returns:
- the encoded XML string
 
- 
unEscapeElementEntitiesConverts any escaped character entities into their unescaped character equivalents. This method is designed to be compatible with the output ofescapeElementEntities(String).- Parameters:
- escapedXMLString- The string with escaped data
- Returns:
- the unescaped string
 
- 
xmlToByteArraypublic static byte[] xmlToByteArray(org.jdom.Element root) Converts the specified XML element into a byte array.- Parameters:
- root- the root element
- Returns:
- the byte array translation of the given element
 
- 
toStringConverts the specified XML element into a String.- Parameters:
- root- the root element
- Returns:
- String translation of the given element
 
- 
fromStringConvert a String into a JDOMElement.- Parameters:
- s-
- Returns:
- Throws:
- org.jdom.JDOMException
- IOException
 
- 
writeDocToFileWrites a JDOM XMLDocumentto aFile.- Parameters:
- doc- JDOM XML- Documentto write.
- dest-- Fileto write to.
- Throws:
- IOException- if error when writing file.
 
- 
writePrettyDocToFile- Parameters:
- doc- JDOM XML- Documentto write.
- dest-- Fileto write to.
- Throws:
- IOException- if error when writing file.
 
- 
readDocFromFileRead a File and convert to jdom xml doc.- Parameters:
- f-- Fileto read
- Returns:
- JDOM Document
- Throws:
- org.jdom.JDOMException- if text in file isn't valid XML
- IOException- if IO error when reading file.
 
- 
readDocFromFilepublic static org.jdom.Document readDocFromFile(ResourceFile f) throws org.jdom.JDOMException, IOException Read a File and convert to jdom xml doc.- Parameters:
- f-- ResourceFileto read
- Returns:
- JDOM Document
- Throws:
- org.jdom.JDOMException- if text in file isn't valid XML
- IOException- if IO error when reading file.
 
- 
byteArrayToXmlpublic static org.jdom.Element byteArrayToXml(byte[] bytes) Converts the specified byte array into an XML element.- Parameters:
- bytes- the XML bytes
- Returns:
- an XML element
 
- 
parseOverlayNameParses the overlay name from the specified address string. Returns null if the address string does appear to represent an overlay.- Parameters:
- addrStr- the address string
- Returns:
- the overlay name or null
 
- 
parseIntParse the given string as either a hex number (if it starts with 0x) or a decimal number.- Parameters:
- intStr- the string to parse into an integer
- Returns:
- the parsed integer.
- Throws:
- NumberFormatException- if the given string does not represent a valid integer.
 
- 
parseIntParses the optional specified string as a decimal number, returning its integer value.- Parameters:
- intStr- string with integer digits, or empty or null
- defaultValue- value to return if intStr is missing
- Returns:
- integer value of the intStr
- Throws:
- NumberFormatException- if intStr could not be parsed or the string specifies a value outside the range of a signed 32 bit integer.
 
- 
parseOptionalBoundedIntpublic static int parseOptionalBoundedInt(String intStr, int defaultValue, int minValue, int maxValue) throws NumberFormatException Parses the optional specified string as a decimal number, returning its integer value, or defaultValue if the string is null.- Parameters:
- intStr- string with integer digits, or null.
- defaultValue- value to return if intStr is null.
- minValue- minimum value allowed (inclusive).
- maxValue- maximum value allowed (inclusive).
- Returns:
- integer value of the intStr.
- Throws:
- NumberFormatException- if intStr could not be parsed or is out of range.
 
- 
parseBoundedIntpublic static int parseBoundedInt(String intStr, int minValue, int maxValue) throws NumberFormatException Parses the specified string as a decimal number, returning its integer value.- Parameters:
- intStr- String with integer digits
- minValue- minimum value allowed (inclusive)
- maxValue- maximum value allowed (inclusive)
- Returns:
- integer value of the intStr
- Throws:
- NumberFormatException- if intStr is null or empty or could not be parsed or is out of range.
 
- 
parseBoundedIntAttrpublic static int parseBoundedIntAttr(org.jdom.Element ele, String attrName, int minValue, int maxValue) throws NumberFormatException Parses the required attribute as a decimal number, returning its integer value.- Parameters:
- ele- JDom element that contains the attribute
- attrName- the name of the xml attribute to parse
- minValue- minimum value allowed (inclusive)
- maxValue- maximum value allowed (inclusive)
- Returns:
- integer value of the attribute
- Throws:
- NumberFormatException- if intStr could not be parsed or is out of range.
 
- 
parseOptionalBoundedIntAttrpublic static int parseOptionalBoundedIntAttr(org.jdom.Element ele, String attrName, int defaultValue, int minValue, int maxValue) throws NumberFormatException Parses an optional attribute as a decimal number, returning its integer value, or the defaultValue if the attribute is null.- Parameters:
- ele- JDOM element that contains the attribute.
- attrName- the name of the xml attribute to parse.
- defaultValue- the default value to return if attribute is missing.
- minValue- minimum value allowed (inclusive).
- maxValue- maximum value allowed (inclusive).
- Returns:
- integer value of the attribute.
- Throws:
- NumberFormatException- if the attribute value could not be parsed or is out of range.
 
- 
parseLongParse the given string as either a hex number (if it starts with 0x) or a decimal number.- Parameters:
- longStr- the string to parse into an long
- Returns:
- the parsed long.
- Throws:
- NumberFormatException- if the given string does not represent a valid long.
 
- 
parseBoundedLongpublic static long parseBoundedLong(String longStr, long minValue, long maxValue) throws NumberFormatException Parses the specified string as a decimal number, returning its long integer value.Note, using Long.MIN_VALUEand/orLong.MAX_VALUEas lower and upper bounds is problematic and should be avoided as the range check will become a NO-OP and always succeed.- Parameters:
- longStr- String with integer digits
- minValue- minimum value allowed (inclusive)
- maxValue- maximum value allowed (inclusive)
- Returns:
- long integer value of the longStr
- Throws:
- NumberFormatException- if intStr is null or empty or could not be parsed or is out of range.
 
- 
parseBoundedLongAttrpublic static long parseBoundedLongAttr(org.jdom.Element ele, String attrName, long minValue, long maxValue) throws NumberFormatException Parses the required attribute as a decimal number, returning its long integer value.Note, using Long.MIN_VALUEand/orLong.MAX_VALUEas lower and upper bounds is problematic and should be avoided as the range check will become a NO-OP and always succeed.- Parameters:
- ele- JDom element that contains the attribute
- attrName- the name of the xml attribute to parse
- minValue- minimum value allowed (inclusive)
- maxValue- maximum value allowed (inclusive)
- Returns:
- long integer value of the attribute
- Throws:
- NumberFormatException- if intStr could not be parsed or is out of range.
 
- 
parseOptionalBoundedLongAttrpublic static long parseOptionalBoundedLongAttr(org.jdom.Element ele, String attrName, long defaultValue, long minValue, long maxValue) throws NumberFormatException Parses the required attribute as a decimal number, returning its long integer value.Note, using Long.MIN_VALUEand/orLong.MAX_VALUEas lower and upper bounds is problematic and should be avoided as the range check will become a NO-OP and always succeed.- Parameters:
- ele- JDom element that contains the attribute.
- attrName- the name of the xml attribute to parse.
- defaultValue- the default value to return if attribute is missing.
- minValue- minimum value allowed (inclusive).
- maxValue- maximum value allowed (inclusive).
- Returns:
- long integer value of the attribute.
- Throws:
- NumberFormatException- if intStr could not be parsed or is out of range.
 
- 
parseBooleanParses the given string into a boolean value. Acceptable inputs are y,n,true,fase. A null input string will return false (useful if optional boolean attribute is false by default)- Parameters:
- boolStr- the string to parse into a boolean value
- Returns:
- the boolean result.
- Throws:
- XmlAttributeException- if the string in not one of y,n,true,false or null.
 
- 
parseOptionalBooleanAttrpublic static boolean parseOptionalBooleanAttr(org.jdom.Element ele, String attrName, boolean defaultValue) throws IOException Parses the optional attribute as a boolean value, returning its value or the specified defaultValue if missing.- Parameters:
- ele- JDom element that contains the attribute
- attrName- the name of the xml attribute to parse
- defaultValue- boolean value to return if the attribute is not defined
- Returns:
- boolean equiv of the attribute string value ("y", "true"/"n", "false")
- Throws:
- IOException- if attribute value is not valid boolean string
 
- 
requireStringAttrThrows anIOExceptionwith a verbose explanation if the requested attribute is not present or is empty.- Parameters:
- ele- JDOM- Elementthat contains the attribute
- attrName- the attribute name
- Returns:
- String value of the attribute (never null or empty)
- Throws:
- IOException- if attribute is missing or empty
 
- 
setStringAttrSets a string attribute on the specified element.- Parameters:
- ele- JDom element
- attrName- name of attribute
- attrValue- value of attribute, null ok
 
- 
setIntAttrSets an integer attribute on the specified element.- Parameters:
- ele- JDom element
- attrName- name of attribute
- attrValue- value of attribute
 
- 
getChildrenType-safe way of getting a list ofElements from JDom.- Parameters:
- ele- the parent element
- childName- the name of the children elements to return
- Returns:
- List<Element> of elements
 
- 
hasInvalidXMLCharactersTests a string for characters that would cause a problem if added to an xml attribute or element.- Parameters:
- s- a string
- Returns:
- boolean true if the string will cause a problem if added to an xml attribute or element.
 
- 
createSecureSAXBuilderpublic static org.jdom.input.SAXBuilder createSecureSAXBuilder(boolean validate, boolean needsDTD) Create aSAXBuilderthat is not susceptible to XXE. This configures the builder to ignore external entities.- Parameters:
- validate- indicates whether validation should occur
- needsDTD- false to disable doctype declarations altogether
- Returns:
- the configured builder
 
- 
createSecureSAXParserFactoryCreate aSAXParserFactorythat is not susceptible to XXE. This configures the factory to ignore external entities.- Parameters:
- needsDTD- false to disable doctype declarations altogether
- Returns:
- the configured factory
 
 
-