我正在研究XML到java解析。我的情况类似于此。
我需要根据属性值将XML解析为java。
我需要在一个成员中使用属性PERMANENT="Y"
解析所有 EMPLOYEE 元素,并在另一个成员中解析属性PERMANENT="N"
。
<EMPLOYEE PERMANENT="Y">
<DETAILS NAME="AA" ID="1" AGE="28" />
<DETAILS NAME="BB" ID="2" AGE="29" />
</EMPLOYEE>
<EMPLOYEE PERMANENT="N">
<DETAILS NAME="CC" ID="3" AGE="28" />
<DETAILS NAME="DD" ID="4" AGE="29" />
</EMPLOYEE>
爪哇
public class Employee
{
// @XStreamAlias("EMPLOYEE") and attribute PERMANENT="Y"
private Details permanentEmployee;
// @XStreamAlias("EMPLOYEE") and attribute PERMANENT="N"
private Details tempEmployee;
}
我不知道该怎么做。
有人可以帮助我。
答案 0 :(得分:1)
您可以使用java xml api
进行操作选择“DETAILS”节点的XPath表达式如下所示:
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
//...
XPath xPath = XPathFactory.newInstance().newXPath();
String expression = "/documentBody/EMPLOYEE[@PERMANENT="Y"]/DETAILS"
NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
这将返回一个nodeList,您需要为每个DETAILS节点进行迭代,我假设该节点描述了一个员工。