假设我有一个xml文档,并希望从每个bitl =。
中获取所有文本节点<Stuff>
<data>
<Nodes>
<NodeID>1</NodeID>
<Name>thingA</Name>
<MoreInfo>
<Description>Scooter</Description>
</MoreInfo>
</Nodes>
<Nodes>
<NodeID>2</NodeID>
<Name>thingB</Name>
<MoreInfo>
<Description>Bike</Description>
</MoreInfo>
</Nodes>
</data>
</Stuff>
我想从每个文本中提取文本。
所以我最终得到:1,thingA,Scooter;和2,thingB,Bike。
NodeList nodes = (NodeList) xpath.evaluate("Nodes", resultXml, XPathConstants.NODESET);
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
logger.info("Evaluating: " + node.toString());
// How do I get just the text nodes descending from the "node" I just found,
// without knowing what the actual node names? I wan't this to work
// for any list of nodes, no matter what the sub-element names are.
}
答案 0 :(得分:0)
使用XPath选择所有非空白文本节点我只需使用路径//text()[normalize-space()]
,然后您可以遍历文本节点并使用node.getNodeValue()
或node.getTextContent()
访问每个节点值