Class StaxUtils
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidcloseQuietly(@Nullable XMLEventReader xmlEventReader) static voidcloseQuietly(@Nullable XMLEventWriter xmlEventWriter) static voidcloseQuietly(XMLStreamReader xmlStreamReader) static voidcloseQuietly(XMLStreamWriter xmlStreamWriter) static StringBuildercollectWhitespace(StringBuilder builder, XMLEventReader reader) Collect whitespace from the given reader, into the given builder.static StringcollectWhitespace(XMLEventReader reader) Collect whitespace from the given reader.static XhtmlExceptionconvertToXhtmlException(com.ctc.wstx.exc.WstxLazyException ex) Take a WstxLazyException as a parameter and return the appropriate XhtmlException for the Woodstox exception supplied.static voidflushEventWriter(XMLEventWriter eventWriter) Ensure all xml events that have been added to the event buffer of the writer are flushed.static StringgetAttributeValue(StartElement startElement, String attributeName) static StringgetAttributeValue(StartElement startElement, String attributeName, String defaultValue) Retrieves the value of the specified attribute name on the specified start element.static StringgetAttributeValue(StartElement startElement, QName attributeQName) static StringgetAttributeValue(StartElement startElement, QName attributeQName, String defaultValue) Retrieves the value of the specified attribute name on the specified start element.static booleanhasAttributes(StartElement startElement, String... attributeNames) Returns true if start element has all the specified attributes.static booleanhasClass(StartElement startElement, String className) static booleanisHTML5RawTextlement(QName name) static booleanisHTML5VoidElement(QName name) static booleanCheck if the given RuntimeException is a wrapper for any of Wstx* exceptionsstatic <E extends XhtmlException>
EprocessWrappedWstxExceptionOrTrowMapped(RuntimeException ex, Function<RuntimeException, E> transformer) New version of the woodstox parser sometimes throws Wstx* exceptions wrapped into the RuntimeException.static StringRead all characters and entities from the supplied reader until a non-character or non-entity event is read.static voidskipWhitespace(XMLEventReader reader) Skip whitespace from the given reader.splitCData(String data) Take a String and split into multiple substrings where each substring is suitable to be written as CData.static @NonNull CharSequencestripIllegalControlChars(@NonNull CharSequence unclean) Removes control characters from a CharSequence so that it can be parsed by a Stax parser.static StringtoString(XMLEventReader reader) Deprecated.since 5.2.static StringtoXmlString(XMLEventReader reader, XmlOutputFactory xmlOutputFactory) static StringtoXmlStringWithoutTag(XMLEventReader reader, XmlOutputFactory xmlOutputFactory, Set<QName> ignoredElements) Reads an XML stream and turns it into a string while removing any tags matched in ignoredElementsstatic voidwriteAttribute(XMLStreamWriter writer, QName attribute, String value) Write an attribute and its value on the provided XMLStreamWriterstatic voidwriteRawXML(XMLStreamWriter writer, Writer out, Streamable streamable) Write raw XML properly on the provided Writer, which is wrapped by a XMLStreamWriterstatic voidwriteStartElement(XMLStreamWriter writer, QName element) Write the element start on the provided XMLStreamWriter
-
Constructor Details
-
StaxUtils
public StaxUtils()
-
-
Method Details
-
isHTML5VoidElement
-
isHTML5RawTextlement
-
writeStartElement
public static void writeStartElement(XMLStreamWriter writer, QName element) throws XMLStreamException Write the element start on the provided XMLStreamWriter- Throws:
XMLStreamException- Since:
- 5.6
-
writeAttribute
public static void writeAttribute(XMLStreamWriter writer, QName attribute, String value) throws XMLStreamException Write an attribute and its value on the provided XMLStreamWriter- Throws:
XMLStreamException- Since:
- 5.6
-
writeRawXML
public static void writeRawXML(XMLStreamWriter writer, Writer out, Streamable streamable) throws IOException, XMLStreamException Write raw XML properly on the provided Writer, which is wrapped by a XMLStreamWriter- Throws:
IOExceptionXMLStreamException- Since:
- 5.6
-
closeQuietly
-
closeQuietly
-
closeQuietly
-
closeQuietly
-
getAttributeValue
-
getAttributeValue
-
getAttributeValue
public static String getAttributeValue(StartElement startElement, String attributeName, String defaultValue) Retrieves the value of the specified attribute name on the specified start element.- Parameters:
startElement- start elementattributeName- attribute name- Returns:
- attribute value or default value if attribute does not exist
-
getAttributeValue
public static String getAttributeValue(StartElement startElement, QName attributeQName, String defaultValue) Retrieves the value of the specified attribute name on the specified start element.- Parameters:
startElement- start elementattributeQName- attribute QName- Returns:
- attribute value or default value if attribute does not exist
-
hasAttributes
Returns true if start element has all the specified attributes.- Parameters:
startElement- start elementattributeNames- attribute names- Returns:
- true if start element has all the specified attributes, false otherwise.
-
hasClass
- Parameters:
startElement-className-- Returns:
- true if the supplied startElement has an HTML class attribute containing the supplied class name.
-
collectWhitespace
Collect whitespace from the given reader. Useful for conditional inclusion in parsed results.- Parameters:
reader- the reader- Returns:
- the whitespace
- Throws:
XMLStreamException- if there are problems reading from the supplied reader
-
collectWhitespace
public static StringBuilder collectWhitespace(StringBuilder builder, XMLEventReader reader) throws XMLStreamException Collect whitespace from the given reader, into the given builder. Useful for conditional inclusion in parsed results.- Parameters:
builder- the builderreader- the reader- Returns:
- the given builder
- Throws:
XMLStreamException- if there are problems reading from the supplied reader
-
skipWhitespace
Skip whitespace from the given reader. Useful for unconditionally ignoring whitespace in parsed results.- Parameters:
reader- the reader- Throws:
XMLStreamException- if there are problems reading from the supplied reader
-
readCharactersAndEntities
Read all characters and entities from the supplied reader until a non-character or non-entity event is read. At this point the stream will be left with the next event being this terminating event.- Parameters:
reader- the reader to read from, with the current event being either a character or an entity- Returns:
- a String including all characters and entities read.
- Throws:
XMLStreamException- if there are problems reading from the supplied reader
-
toString
Deprecated. -
toXmlString
-
toXmlStringWithoutTag
public static String toXmlStringWithoutTag(XMLEventReader reader, XmlOutputFactory xmlOutputFactory, Set<QName> ignoredElements) Reads an XML stream and turns it into a string while removing any tags matched in ignoredElements- Parameters:
reader- The XML event readerxmlOutputFactory- The XML output factoryignoredElements- A set of tags that should be stripped from the output- Returns:
- A string representation of the XML document with the specified tags removed.
-
flushEventWriter
Ensure all xml events that have been added to the event buffer of the writer are flushed.You want to be using this instead of
XMLEventWriter.flush()when:- you have just written the start element to the event stream
- plan to then write the body of the element directly to the underlying writer
If you want to do this, you need this method to append the closing angle bracket of the start element.
You want to do in preparation for writing to the underlying writer directly.
- Parameters:
eventWriter- the event writer- Throws:
XMLStreamException
-
splitCData
Take a String and split into multiple substrings where each substring is suitable to be written as CData.
You would use this method when you want to write CDATA to an XML document and you need to be sure that the content you are writing doesn't contain a CDATA closing triad (]]>) which would cause a premature closing of the CDATA.
So as an example if you supply a String like <![CDATA[stuff]]> then the returned Strings would be
- <![CDATA[stuff]]
- >
If the supplied String is already safe for writing to a CDATA section then a single item List will be returned containing the supplied String.
- Parameters:
data- the data to be made safe for writing to a CDATA section.- Returns:
- a list of one or more items where each item is safe to be written to a separate CDATA sections.
-
convertToXhtmlException
Take a WstxLazyException as a parameter and return the appropriate XhtmlException for the Woodstox exception supplied.- Parameters:
ex- the Woodstox exception to be converted to an XhtmlException.- Returns:
- an XhtmlParsingException if the WstxLazyException is wrapping a WstxParsingException, otherwise an XhtmlException
-
processWrappedWstxExceptionOrTrowMapped
public static <E extends XhtmlException> E processWrappedWstxExceptionOrTrowMapped(RuntimeException ex, Function<RuntimeException, E> transformer) New version of the woodstox parser sometimes throws Wstx* exceptions wrapped into the RuntimeException. This method tries to unwrap such exceptions and handle them in the same way asconvertToXhtmlException(WstxLazyException)does. If it turns out that given RuntimeException is not a wrapper of any of Wstx* exceptions, method uses provided transformer to convert given runtime exception into a XhtmlException- Parameters:
ex- runtime exceptiontransformer- function to transform given runtime exception into the instance of XhtmlException, if it doesn't wrap any of Wstx* exceptions- Returns:
- istance of XhtmlException
-
isWrappedAnyWstxException
Check if the given RuntimeException is a wrapper for any of Wstx* exceptions- Parameters:
ex- RuntimeException to test- Returns:
- true if given RuntimeException is a wrapper for any of Wstx* exceptions, false otherwise
-
stripIllegalControlChars
Removes control characters from a CharSequence so that it can be parsed by a Stax parser. The xml spec defines what characters an XML processor must accept:Legal characters are tab, carriage return, line feed, and the legal characters of Unicode and ISO/IEC 10646
XML Charsets.This method only removes illegal control chars, and doesn't attempt to remove illegal Unicode characters.
- Parameters:
unclean-- Returns:
- the supplied CharSequence with illegal control characters stripped
-