繁体   English   中英

根据属性值将xml解析为不同的成员

[英]Parse xml to different members based on Attribute value

我正在研究XML到Java的解析。 我有类似的情况。

我需要根据属性值将XML解析为Java。

我需要解析一个成员中具有属性PERMANENT="Y"以及另一个成员中具有属性PERMANENT="N"所有EMPLOYEE元素。

<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>

Java的

public class Employee
{

   // @XStreamAlias("EMPLOYEE") and attribute PERMANENT="Y"
    private Details permanentEmployee;

   // @XStreamAlias("EMPLOYEE") and attribute PERMANENT="N"
    private Details tempEmployee;

}

我不确定该怎么做。

有人能帮我吗。

您可以使用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节点进行遍历,我假设它描述了一个雇员。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM