示例xml文档:
<a>
<b>...</b>
xyz
<c>...</c>
</a>
有没有办法使用Java代码(通过DOM解析)提取标记xyz
和b
之间的内容c
?
答案 0 :(得分:1)
迭代根元素(<a>
)的节点。在您的示例中,第二个节点(索引为2,因为节点从1开始索引)将是文本节点。
Document document = ...; // create org.w3c.dom.Document instance from XML
document.getDocumentElement().getChildNodes().item(2).getTextContent();
答案 1 :(得分:1)
假设元素引用标记'a'以下代码应该提取您想要的内容并且如果您在'b'和'c'标记之前和之后有内容
也可以工作 NodeList content = element.getChildNodes();
StringBuilder textContent = new StringBuilder();
int cntLength = content.getLength();
for ( int i = 0; i < cntLength; i++ ) {
Node paramValue = content.item( i );
short type = paramValue.getNodeType();
if ( ( type == Node.TEXT_NODE ) || ( type == Node.CDATA_SECTION_NODE ) ) {
textContent.append( ((CharacterData) paramValue).getData() ); // Both Text and CDATASection nodes are SubType of CharacterData
}
}