Class XPathImpl
- java.lang.Object
-
- lumis.portal.serviceinterface.style.impl.common.XPathImpl
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Map<String,Object>
getMap(String xpath)
Selects a node with the given XPath and converts it to aMap
, by usingIXPath.toMap(Node)
.Map<String,Object>
getMap(String xpath, Node context)
Selects a node with the given XPath and converts it to aMap
, by usingIXPath.toMap(Node)
.List<Map<String,Object>>
getMaps(String xpath)
Selects nodes with the given XPath and converts them to aList
ofMap
, by usingIXPath.toMap(Node)
in each of these nodes.List<Map<String,Object>>
getMaps(String xpath, Node context)
Selects nodes with the given XPath and converts them to aList
ofMap
, by usingIXPath.toMap(Node)
in each of these nodes.List<Node>
selectNodes(String xpath)
Returns anode list
with the selected nodes by the given XPath using the document in context.List<Node>
selectNodes(String xpath, Node context)
Returns anode list
with the selected nodes by the given XPath in the givencontext
.Node
selectSingleNode(String xpath)
Returns a single node selected by the given XPath expression using the document in context.Node
selectSingleNode(String xpath, Node context)
Returns a single node selected by the given XPath expression in the givencontext
.Map<String,Object>
toMap(Node node)
Returns a Map object based on the given node.String
valueOf(String xpath, Node context)
Returns the string representation of the evaluated XPath in the given context.
-
-
-
Constructor Detail
-
XPathImpl
public XPathImpl(Node document)
Constructor that receives the document in context- Parameters:
document
-- Since:
- 8.1.0
-
-
Method Detail
-
valueOf
public String valueOf(String xpath, Node context)
Description copied from interface:IXPath
Returns the string representation of the evaluated XPath in the given context.
-
selectNodes
public List<Node> selectNodes(String xpath, Node context)
Description copied from interface:IXPath
Returns anode list
with the selected nodes by the given XPath in the givencontext
.- Specified by:
selectNodes
in interfaceIXPath
- Parameters:
xpath
- the XPath expression.context
- the context node.- Returns:
- a
node list
with the selected nodes by the given XPath.
-
selectNodes
public List<Node> selectNodes(String xpath)
Description copied from interface:IXPath
Returns anode list
with the selected nodes by the given XPath using the document in context.- Specified by:
selectNodes
in interfaceIXPath
- Parameters:
xpath
- the XPath expression.- Returns:
- a
node list
with the selected nodes by the given XPath.
-
selectSingleNode
public Node selectSingleNode(String xpath, Node context)
Description copied from interface:IXPath
Returns a single node selected by the given XPath expression in the givencontext
. If more than one node is selected, the first one is returned. If there's no such node,null
is returned.- Specified by:
selectSingleNode
in interfaceIXPath
- Parameters:
xpath
- the XPath expression.context
- the context node.- Returns:
- a single node selected by the given XPath expression
-
selectSingleNode
public Node selectSingleNode(String xpath)
Description copied from interface:IXPath
Returns a single node selected by the given XPath expression using the document in context. If more than one node is selected, the first one is returned. If there's no such node,null
is returned.- Specified by:
selectSingleNode
in interfaceIXPath
- Parameters:
xpath
- the XPath expression.- Returns:
- a single node selected by the given XPath expression
-
toMap
public Map<String,Object> toMap(Node node)
Description copied from interface:IXPath
Returns a Map object based on the given node.The conversion rules are as follows:
- Elements
-
A XML element node will behave depending on its nature.
If the element node is a simple element node, then its value will become available under the node name.
For example, the given XML node:
Some textanother text var myValue = myMap.myNode;
, the variablemyValue
will have the valueSome textother textanother text
.
It is important to notice that no white space will be automatically included between text and CDATA nodes.If the element node is a simple element node with attributes, then its value will become available under the
$
object, inside the node object.
For example, the given XML node:
Some textanother text var myValue = myMap.myNode.$;
, the variablemyValue
will have the valueSome textother textanother text
.
It is important to notice that no white space will be automatically included between text and CDATA nodes.If the node is a complex node then its text (inner
CDATA sections
andtext nodes
) will not be accessible. This kind of node is simply a container for inner nodes.
For example, the given XML node:
Some textanother text Other node text myNode
will not be accessible at all and the text of nodemyOtherNode
will be accessible usingmyMap.myNode.myOtherNode
.Another aspect of element nodes is when they are automatically wrapped in arrays. It happens in the following situations:
- If some element node has at least one sibling node with the very same name.
- If an element node has the attribute
lumIsArray
with the valuetrue
. - If the parent node of some element node has a name that is the concatenation of the child node with the "s" suffix and the child element node either doesn't have the
lumIsArray
attribute or the value oflumIsArray
attribute is notfalse
. - If the element node has the name
row
and its parent node name isdata
and the child element node either doesn't have thelumIsArray
attribute or the value oflumIsArray
attribute is notfalse
.
- Attributes
-
A XML element node attribute named
myAttribute
becomes available using the name$myAttribute
. For example, the given XML node:
myAttribute
available usingmyNode.$myAttribute
.
- Simple element node
-
Simple element node is a node that has the following aspects:
- Has no attributes.
- All of inner nodes are either
CDATA sections
ortext nodes
(comments
are ignored).
- Simple element node with attributes
-
Simple element node with attributes is a node that has the following aspects:
- Has at least one attribute.
- All of inner nodes are either
CDATA sections
ortext nodes
(comments
are ignored).
- Simple element node value
-
The value of a simple element node is the concatenation of all inner
CDATA sections
andtext nodes
. - Complex node
- A complex node is a node that has at least one inner node that is neither a
CDATA section
nor atext node
.
-
getMap
public Map<String,Object> getMap(String xpath, Node context)
Description copied from interface:IXPath
Selects a node with the given XPath and converts it to aMap
, by usingIXPath.toMap(Node)
. If no node could be resolved with the given XPath,null
will be returned.
-
getMap
public Map<String,Object> getMap(String xpath)
Description copied from interface:IXPath
Selects a node with the given XPath and converts it to aMap
, by usingIXPath.toMap(Node)
. If no node could be resolved with the given XPath,null
will be returned.
-
getMaps
public List<Map<String,Object>> getMaps(String xpath, Node context)
Description copied from interface:IXPath
Selects nodes with the given XPath and converts them to aList
ofMap
, by usingIXPath.toMap(Node)
in each of these nodes. If no node could be resolved with the given XPath, an empty list will be returned.
-
getMaps
public List<Map<String,Object>> getMaps(String xpath)
Description copied from interface:IXPath
Selects nodes with the given XPath and converts them to aList
ofMap
, by usingIXPath.toMap(Node)
in each of these nodes. If no node could be resolved with the given XPath, an empty list will be returned.
-
-