我正在尝试只获取顶级文本而不是子文本。所以我有以下xml:
<job>
text1
<input> text2 </input>
</job>
我想只获取父(text1)文本。所以在这个例子中我会做
node.getTextContent();
获取text1
,而不是text1text2
getTextContent目前正在给我。现在我已经阅读了人pages,我知道他们说getTextContent返回所有子节点与父节点的串联字符串。但我只想从父母的文本。我想要做的另一种方法是尝试将父项与子项隔离,并仅对父项执行getTextContent命令,但我不知道它是多么可行。
任何帮助将不胜感激
谢谢,-Josh
答案 0 :(得分:2)
遍历节点的所有子节点并连接那些文本节点。无论是那个还是XPath。
答案 1 :(得分:2)
getChildNodes()是否有效?如果是这样,你可以遍历所有的childNodes并在它们上调用getContent(),并从你的node.getContent()中减去它。这将导致文本不属于子节点。
最佳答案:不要将文字与子节点混合使用。我不得不仔细检查你提供的xml是否合法,但是它让我感到害怕。
答案 2 :(得分:1)
我认为您可能使用job / text()的xpath,这可能比导航DOM模型更容易。
如果可以的话,避免混合内容,这有点痛苦。
答案 3 :(得分:1)
而不是这个
node.getTextContent();
使用它:
if (node.getFirstNode() != null)
{
node.getFirstChild().getTextContent();
}
答案 4 :(得分:0)
如果有人遇到此问题,我发现这样做的最好方法是获取节点的所有子节点,然后获取每个子节点的节点类型。如果你得到一个文本节点,就在那个节点上调用getTextContent(),然后你就去了!
答案 5 :(得分:0)
node.firstChild.textContent.trim();