- java.lang.Object
-
- org.joox.JOOX
-
public final class JOOX extends java.lang.Object- Author:
- Lukas Eder
-
-
Constructor Summary
Constructors Constructor Description JOOX()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Match$()Wrap a new empty documentstatic Match$(java.io.File file)Read a DOM document from a file into aMatchelement setstatic Match$(java.io.InputStream stream)Read a DOM document from a stream into aMatchelement setstatic Match$(java.io.Reader reader)Read a DOM document from a reader into aMatchelement setstatic Match$(java.lang.Object object)Wrap a JAXB-marshallable element in a jOOXMatchelement setstatic Match$(java.lang.String name)Create a new DOM element in an independent documentstatic Match$(java.lang.String name, java.lang.String content)Create a new DOM element in an independent documentstatic Match$(java.lang.String name, Match... content)Create a new DOM element in an independent documentstatic Match$(java.lang.String name, org.w3c.dom.Element... content)Create a new DOM element in an independent documentstatic Match$(java.net.URI uri)Convenience method for calling$(new File(uri))static Match$(java.net.URL url)Convenience method for calling$(url.openStream())static Match$(Context context)Convenience method for calling$(context.element())static Match$(Match match)Convenience method for calling$(match)static Match$(org.w3c.dom.Document document)Wrap a DOM document in a jOOXMatchelement setstatic Match$(org.w3c.dom.Element element)Wrap a DOM element in a jOOXMatchelement setstatic Match$(org.w3c.dom.Node node)Wrap a DOMNodein a jOOXMatchelement setstatic Match$(org.w3c.dom.NodeList list)Wrap a DOMNodeListin a jOOXMatchelement setstatic Match$(org.xml.sax.InputSource source)Read a DOM document from a file into aMatchelement setstatic FastFilterall()A filter that always returns truestatic Filterand(Filter... filters)Combine filtersstatic FastFilterat(int... indexes)A filter that returns true on elements at given iteration indexesstatic FastFilterattr(java.lang.String name)A filter that returns all elements with a given attributestatic FastFilterattr(java.lang.String name, java.lang.String... values)A filter that returns all elements with a given attribute being set to a given valuestatic Mapper<java.lang.String>attrs(java.lang.String attributeName)Create a mapper that returns all attributes with a given namestatic javax.xml.parsers.DocumentBuilderbuilder()Get a namespace-aware document builderstatic Eachchain(java.lang.Iterable<? extends Each> each)Chain several instances ofEachinto a single one.static Eachchain(Each... each)Chain several instances ofEachinto a single one.static Contentcontent(java.lang.Object value)Get a constant content that returns a marshalled, JAXB-annotatedvaluefor all elements.static Contentcontent(java.lang.String value)Get a constant content that returns the samevaluefor all elements.static <T> Tconvert(java.lang.String value, java.lang.Class<T> type)Convert a string value to any of these types:String: The conversion has no effectByte: Numeric conversion.static <T> java.util.List<T>convert(java.util.List<java.lang.String> values, java.lang.Class<T> type)Convert several valuesstatic FastFiltereven()A filter that returns true on all even iteration indexes (starting with 0!)static Mapper<java.lang.String>ids()Create a mapper that returns allidattributesstatic FastFilterids(java.lang.String... ids)Create a filter matching id attributesstatic java.lang.Iterable<org.w3c.dom.Element>iterable(org.w3c.dom.NodeList elements)Wrap aNodeListinto anIterablestatic java.util.Iterator<org.w3c.dom.Element>iterator(org.w3c.dom.NodeList elements)Wrap aNodeListinto anIteratorstatic FastFilterleaf()A filter that returns true on leaf elementsstatic java.util.List<org.w3c.dom.Element>list(org.w3c.dom.NodeList elements)Wrap aNodeListinto anListstatic FastFiltermatchAttr(java.lang.String name, java.lang.String valueRegex)A filter that returns all elements whose text content matches a given regexstatic FastFiltermatchTag(java.lang.String regex)A filter that returns all elements whose tag name matches a given regexstatic FastFiltermatchTag(java.lang.String regex, boolean ignoreNamespace)A filter that returns all elements whose tag name matches a given regexstatic FastFiltermatchText(java.lang.String regex)A filter that returns all elements whose text content matches a given regexstatic FastFilternamespacePrefix(java.lang.String namespacePrefix)A filter that returns all elements with a given namespace prefixstatic FastFilternamespaceURI(java.lang.String namespaceURI)A filter that returns all elements with a given namespace URIstatic FastFilternone()A filter that always returns falsestatic Filternot(Filter filter)Inverse a filterstatic FastFilterodd()A filter that returns true on all odd iteration indexes (starting with 0!)static Filteror(Filter... filters)Combine filtersstatic Mapper<java.lang.String>paths()Create a mapper that returns all paths to given elementsstatic Filterselector(java.lang.String selector)A filter that returns all elements matched by a given selector.static FastFiltertag(java.lang.String tagName)A filter that returns all elements with a given tag namestatic FastFiltertag(java.lang.String tagName, boolean ignoreNamespace)A filter that returns all elements with a given tag name
-
-
-
Method Detail
-
$
public static Match $()
Wrap a new empty document
-
$
public static Match $(java.lang.Object object)
Wrap a JAXB-marshallable element in a jOOXMatchelement set- See Also:
content(Object),Match.content(Object)
-
$
public static Match $(java.lang.String name)
Create a new DOM element in an independent document
-
$
public static Match $(java.lang.String name, java.lang.String content)
Create a new DOM element in an independent document
-
$
public static Match $(java.lang.String name, org.w3c.dom.Element... content)
Create a new DOM element in an independent documentThe added content is cloned into the new document
-
$
public static Match $(java.lang.String name, Match... content)
Create a new DOM element in an independent documentThe added content is cloned into the new document
-
$
public static Match $(org.w3c.dom.Document document)
Wrap a DOM document in a jOOXMatchelement set
-
$
public static Match $(org.w3c.dom.Element element)
Wrap a DOM element in a jOOXMatchelement set
-
$
public static Match $(org.w3c.dom.Node node)
Wrap a DOMNodein a jOOXMatchelement setSupported node types are
-
Document: see$(Document) -
Element: see$(Element)
-
-
$
public static Match $(org.w3c.dom.NodeList list)
Wrap a DOMNodeListin a jOOXMatchelement setIf the supplied NodeList is empty or null, then an empty Match is created
-
$
public static Match $(java.net.URL url) throws org.xml.sax.SAXException, java.io.IOException
Convenience method for calling$(url.openStream())- Throws:
org.xml.sax.SAXExceptionjava.io.IOException
-
$
public static Match $(java.net.URI uri) throws org.xml.sax.SAXException, java.io.IOException
Convenience method for calling$(new File(uri))- Throws:
org.xml.sax.SAXExceptionjava.io.IOException
-
$
public static Match $(java.io.File file) throws org.xml.sax.SAXException, java.io.IOException
Read a DOM document from a file into aMatchelement set- Throws:
java.io.IOExceptionorg.xml.sax.SAXException
-
$
public static Match $(java.io.InputStream stream) throws org.xml.sax.SAXException, java.io.IOException
Read a DOM document from a stream into aMatchelement set- Throws:
java.io.IOExceptionorg.xml.sax.SAXException
-
$
public static Match $(java.io.Reader reader) throws org.xml.sax.SAXException, java.io.IOException
Read a DOM document from a reader into aMatchelement set- Throws:
java.io.IOExceptionorg.xml.sax.SAXException
-
$
public static Match $(org.xml.sax.InputSource source) throws org.xml.sax.SAXException, java.io.IOException
Read a DOM document from a file into aMatchelement set- Throws:
java.io.IOExceptionorg.xml.sax.SAXException
-
none
public static FastFilter none()
A filter that always returns false
-
all
public static FastFilter all()
A filter that always returns true
-
even
public static FastFilter even()
A filter that returns true on all even iteration indexes (starting with 0!)
-
odd
public static FastFilter odd()
A filter that returns true on all odd iteration indexes (starting with 0!)
-
leaf
public static FastFilter leaf()
A filter that returns true on leaf elements
-
at
public static FastFilter at(int... indexes)
A filter that returns true on elements at given iteration indexes
-
selector
public static Filter selector(java.lang.String selector)
A filter that returns all elements matched by a given selector.In most cases, this is the same as calling
tag(String). InMatch.find(String), the following CSS-style selector syntax elements are also supported:Selector pattern meaning * any element E an element of type E E[foo] an E element with a "foo" attribute E[foo="bar"] an E element whose "foo" attribute value is exactly equal to "bar" E[foo~="bar"] an E element whose "foo" attribute value is a list of whitespace-separated values, one of which is exactly equal to "bar" E[foo^="bar"] an E element whose "foo" attribute value begins exactly with the string "bar" E[foo$="bar"] an E element whose "foo" attribute value ends exactly with the string "bar" E[foo*="bar"] an E element whose "foo" attribute value contains the substring "bar" E[foo|="en"] an E element whose "foo" attribute has a hyphen-separated list of values beginning (from the left) with "en" E:root an E element, root of the document E:first-child an E element, first child of its parent E:last-child an E element, last child of its parent E:only-child an E element, only child of its parent E:empty an E element that has no children (including text nodes) E#myid an E element with ID equal to "myid". E F an F element descendant of an E element E > F an F element child of an E element E + F an F element immediately preceded by an E element E ~ F an F element preceded by an E element Note that due to the presence of pseudo selectors, such as
:root,:empty, etc, namespaces are not supported in selectors. Use jOOX's XPath functionality provided inMatch.xpath(String)along withMatch.namespaces(java.util.Map)if your XML document contains namespaces
-
tag
public static FastFilter tag(java.lang.String tagName)
A filter that returns all elements with a given tag nameThis is the same as calling
tag(tagName, true)- See Also:
tag(String, boolean)
-
tag
public static FastFilter tag(java.lang.String tagName, boolean ignoreNamespace)
A filter that returns all elements with a given tag nameThis method allows for specifying whether namespace prefixes should be ignored. This is particularly useful in DOM Level 1 documents, which are namespace-unaware. In those methods
Document.getElementsByTagNameNS(String, String)will not work, as elements do not contain anylocalName.- Parameters:
tagName- The tag name to match. Use * as a special tag name to match all tag namesignoreNamespace- Whether namespace prefixes can be ignored. When set totrue, then the namespace prefix is ignored. When set tofalse, thentagNamemust include the actual namespace prefix.
-
namespacePrefix
public static FastFilter namespacePrefix(java.lang.String namespacePrefix)
A filter that returns all elements with a given namespace prefixnulland the empty string are treated equally to indicate that no namespace prefix should be present.
-
namespaceURI
public static FastFilter namespaceURI(java.lang.String namespaceURI)
A filter that returns all elements with a given namespace URInulland the empty string are treated equally to indicate that no namespace URI should be present.This only works if the underlying document is namespace-aware
-
matchText
public static FastFilter matchText(java.lang.String regex)
A filter that returns all elements whose text content matches a given regex- See Also:
Pattern.matches(String, CharSequence)
-
matchAttr
public static FastFilter matchAttr(java.lang.String name, java.lang.String valueRegex)
A filter that returns all elements whose text content matches a given regex- See Also:
Pattern.matches(String, CharSequence)
-
matchTag
public static FastFilter matchTag(java.lang.String regex)
A filter that returns all elements whose tag name matches a given regexThis is the same as calling
matchTag(regex, true)- See Also:
Pattern.matches(String, CharSequence)
-
matchTag
public static FastFilter matchTag(java.lang.String regex, boolean ignoreNamespace)
A filter that returns all elements whose tag name matches a given regexThis method allows for specifying whether namespace prefixes should be ignored. This is particularly useful in DOM Level 1 documents, which are namespace-unaware. In those methods
Document.getElementsByTagNameNS(String, String)will not work, as elements do not contain anylocalName.- Parameters:
regex- The regular expression to use for matching tag names.ignoreNamespace- Whether namespace prefixes can be ignored. When set totrue, then the namespace prefix is ignored. When set tofalse, thenregexmust also match potential namespace prefixes.- See Also:
Pattern.matches(String, CharSequence)
-
attr
public static FastFilter attr(java.lang.String name)
A filter that returns all elements with a given attribute
-
attr
public static FastFilter attr(java.lang.String name, java.lang.String... values)
A filter that returns all elements with a given attribute being set to a given value
-
ids
public static FastFilter ids(java.lang.String... ids)
Create a filter matching id attributes
-
content
public static Content content(java.lang.String value)
Get a constant content that returns the samevaluefor all elements.
-
content
public static Content content(java.lang.Object value)
Get a constant content that returns a marshalled, JAXB-annotatedvaluefor all elements.- See Also:
$(Object),Match.content(Object)
-
ids
public static Mapper<java.lang.String> ids()
Create a mapper that returns allidattributes
-
attrs
public static Mapper<java.lang.String> attrs(java.lang.String attributeName)
Create a mapper that returns all attributes with a given name
-
paths
public static Mapper<java.lang.String> paths()
Create a mapper that returns all paths to given elements
-
chain
public static Each chain(Each... each)
Chain several instances ofEachinto a single one.The resulting chained
Eachproduces a newEachthat can be used in theMatch.each(Each)method. I.e. every node in a set of matched nodes will be passed to every chainedEach, sequentially.
-
chain
public static Each chain(java.lang.Iterable<? extends Each> each)
Chain several instances ofEachinto a single one.The resulting chained
Eachproduces a newEachthat can be used in theMatch.each(Each)method. I.e. every node in a set of matched nodes will be passed to every chainedEach, sequentially.
-
iterable
public static java.lang.Iterable<org.w3c.dom.Element> iterable(org.w3c.dom.NodeList elements)
Wrap aNodeListinto anIterable
-
iterator
public static java.util.Iterator<org.w3c.dom.Element> iterator(org.w3c.dom.NodeList elements)
Wrap aNodeListinto anIterator
-
list
public static java.util.List<org.w3c.dom.Element> list(org.w3c.dom.NodeList elements)
Wrap aNodeListinto anList
-
builder
public static javax.xml.parsers.DocumentBuilder builder()
Get a namespace-aware document builder
-
convert
public static <T> T convert(java.lang.String value, java.lang.Class<T> type)Convert a string value to any of these types:-
String: The conversion has no effect -
Byte: Numeric conversion. NaN will return null -
Short: Numeric conversion. NaN will return null -
Integer: Numeric conversion. NaN will return null -
Long: Numeric conversion. NaN will return null -
Float: Numeric conversion. NaN will return null -
Double: Numeric conversion. NaN will return null -
BigDecimal: Numeric conversion. NaN will return null -
BigInteger: Numeric conversion. NaN will return null -
Boolean: Boolean conversion. Boolean values fortrueare any of these case-insensitive strings:1yyestrueonenabled
falseare any of these case-insensitive strings:0nnofalseoffdisabled
- Primitive types: Numeric or boolean conversion, except that
nulland illegal values will result in0orfalse -
Date: Datetime conversion. -
Calendar: Datetime conversion. -
GregorianCalendar: Datetime conversion. -
Timestamp: Datetime conversion. Possible patterns for datetime conversion areyyyy: Only the year is parsedyyyy[-/]MM: Year and month are parsed. Separator characters are optionalyyyy[-/]MM[-/]dd: Date is parsed. Separator characters are optionaldd[-/.]MM[-/.]yyyy: Date is parsed. Separator characters are mandatoryyyyy[-/]MM[-/]dd[T ]HH: Date and hour are parsed. Separator characters are optionalyyyy[-/]MM[-/]dd[T ]HH[:]mm: Date and time are parsed. Separator characters are optionalyyyy[-/]MM[-/]dd[T ]HH[:]mm[:]ss: Date and time are parsed. Separator characters are optionalyyyy[-/]MM[-/]dd[T ]HH[:]mm[:]ss.SSS: Date and time are parsed. Separator characters are optional
-
Date: Date conversion. Possible patterns for date conversion areyyyy: Only the year is parsedyyyy[-/]MM: Year and month are parsed. Separator characters are optionalyyyy[-/]MM[-/]dd: Date is parsed. Separator characters are optionaldd[-/.]MM[-/.]yyyy: Date is parsed. Separator characters are mandatory
-
Time: Time conversion. Possible patterns for time conversion areHH: Hour is parsed. Separator characters are optionalHH[:]mm: Hour and minute are parsed. Separator characters are optionalHH[:]mm[:]ss: Time is parsed. Separator characters are optional
- Any of the above as array. Arrays of any type are split by any whitespace character, comma or semi-colon. String literals may be delimited by quotes as well.
All other values evaluate to
null -
-
convert
public static <T> java.util.List<T> convert(java.util.List<java.lang.String> values, java.lang.Class<T> type)Convert several values- See Also:
convert(String, Class)
-
-