我必须解析具有复杂结构的XML文件 -
以下是结构的一部分的简要概述 -
“PA”-----------顶级组元素,包含ar,pars,paes和另外一个元素......
---“ar”组元素 - 由reel-no,frame-no,last-update-date,purge-indicator,录制日期,页数,通讯员,传送文本组成。在“ar”中,我们需要“last-update-date”和“录制日期”
---“pars”组元素 - 由一个或多个“pr”元素组成.--“pr”是由name和execution-date组成的组元素。
注意,从上面看,单个根记录中可能有一个或多个“pr”元素,并且关系是root或PA - > pars - >一个或多个pr元素。
现在我已经使用以下代码导航到单个根元素(即PA的元素)---
//get a nodelist of elements
NodeList nl = docEle.getElementsByTagName("PA");
if(nl != null && nl.getLength() > 0) {
for(int i = 0 ; i < nl.getLength();i++) {
//get the PA element
Element el = (Element)nl.item(i);
//now add code so as to obtain a node list of "pr" elements.
}
是否可以解析上面获得的单个元素(将该元素本身视为复杂的xml结构),以便获得“pr”元素的节点列表?我已经有一个“PA”元素(其中“pr”元素的节点列表应该是)。供您参考,“PA”和“pr”之间的确切关系是root或PA - &gt; pars - &gt;一个或多个pr元素。
答案 0 :(得分:1)
您可以尝试使用XPath,例如,如果您输入类似这样的内容而不是“添加代码”注释:
XPath xpath = XPathFactory.newInstance().newXPath();
NodeList list=(NodeList) xpath.evaluate("pars/pr", el, XPathConstants.NODESET);
这应该会为您提供当前pr
下pars
个节点的所有PA
个节点的列表。