【发布时间】:2018-07-02 21:09:05
【问题描述】:
目前,我正在使用 DOM 在 Java 中解析 XML 文件。但是我遇到了一个问题,如果在另一个标签中有其他同名的标签,如何从 XML 文件中提取特定的标签内容,如下所示:
<file>
<sub-file>
<a> ....</a>
<b> ....</b>
<c> ....</c>
</sub-file>
<a> ..... some data here ....</a>
<b> ..... some data here ....</b>
<c> ..... some data here ....</c>
<image>
<a> ....</a>
<b> ....</b>
<c> ....</c>
</image>
</file>
那么我如何提取不在另一个(在子文件或图像内)的 a、b、c 标签?到目前为止,我尝试了这段代码:
File xmlfile=new File(path);
factory = DocumentBuilderFactory.newInstance();
builder= factory.newDocumentBuilder();
document= builder.parse(xmlfile);
document.getDocumentElement().normalize();
filelist= document.getElementsByTagName("file");
for(int o=0;o<filelist.getLength();o++)
{
Node nNode = filelist.item(o);
if (nNode.getNodeType() == Node.ELEMENT_NODE)
{
Element element = (Element) nNode;
for (int a=0; a<element.getElementsByTagName("file").getLength(); a++)
{
tagA=element.getElementsByTagName("a").item(a).getTextContent();
tagB=element.getElementsByTagName("b").item(a).getTextContent();
tagC=element.getElementsByTagName("c").item(a).getTextContent();
}
}
}// loop
}
此代码打印所有标签 a、b、c 3 次(内部文件、子文件和图像)。
【问题讨论】:
标签: java parsing xml-parsing