I am trying to use moxy @XmlPath to parse values with combination of predicates, but it is not being parsed instead a null is assigned. I have tried both syntax for combining predicates.
@XmlPath("Tag[@attr1='A'][@attr2='X']/text()")
@XmlPath("Tag[@attr1='A' and @attr2='X']/text()")
<Element>
<Tag attr1="A" attr2="X">1</Tag>
<Tag attr1="A" attr2="Y">2</Tag>
<Tag attr1="B" attr2="X">3</Tag>
<Tag attr1="C" attr2="Y">4</Tag>
</Element>
@XmlRootElement(name="Element")
ClassA{
@XmlPath("Tag[@attr1='A'][@attr2='X']/text()")
String ax;
@XmlPath("Tag[@attr1='A'][@attr2='Y']/text()")
String ay;
@XmlPath("Tag[@attr1='B'][@attr2='X']/text()")
String bx;
@XmlPath("Tag[@attr1='B'][@attr2='Y']/text()")
String by;
}
You are missing
@before the second attributeattr2.Also looks like you are missing
//at the beginning of the expressions.These XPaths are returning the appropriate nodes texts: