【发布时间】:2015-04-26 15:56:24
【问题描述】:
我有一个结构如下的 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<entry id="young_1">
<sense n="1">
<cit type="translation" lang="fr">
<quote>jeune</quote>
</cit>
<re type="phr">
<sense>
<cit type="translation" lang="fr">
<quote>un jeune homme</quote>
</cit>
</sense>
</re>
</sense>
<sense n="2">
<cit type="translation" lang="fr">
<quote>petits
<hi rend="i">mpl</hi>
</quote>
</sense>
</entry>
我需要使用 JAVA 对其进行解析,以获取 cit 元素中包含的每个 quote 值,该元素具有 type="translation" 属性:
- 我只需要
quote元素的文本内容,但不需要<quote>petits <hi rend="i">mpl</hi></quote>等直接节点的文本内容 - 我不需要将
quote元素的文本内容包含在re元素中
最后我需要得到这个结果:
entry ==> young_1
translations ==> [jeune;petits]
现在我的 JAVA 代码是:
//load xml document for DOM parsing
Document doc = loadXMLFromString(xmlContent);
//now try to parse it
NodeList nList = doc.getElementsByTagName("sense");
for (int i = 0; i < nList.getLength(); i++) {
Node nNode = nList.item(i);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
NodeList fieldNodes = eElement.getElementsByTagName("cit");
for(int j = 0; j < fieldNodes.getLength(); j++) {
Node fieldNode = fieldNodes.item(j);
NamedNodeMap attributes = fieldNode.getAttributes();
Node attr = attributes.getNamedItem("type");
if(attr != null) {
if(attr.getTextContent().equals("translation")) {
//how can I access <quote> element ???
}
}
}
}
}
但我不知道如何访问<quote>...
【问题讨论】: