如何使用 Java 提取 XML 文档中 2 个兄弟节点之间的内容

发布于 2024-11-06 01:11:11 字数 213 浏览 4 评论 0原文

示例xml文档:

<a>
    <b>...</b>
    xyz
    <c>...</c>
</a>

有没有办法使用Java代码(通过DOM解析)提取放置在标签bc之间的内容xyz

sample xml document:

<a>
    <b>...</b>
    xyz
    <c>...</c>
</a>

Is there a way to extract the content xyz placed between the tags b and c using Java code (through DOM parsing)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

耳根太软 2024-11-13 01:11:11

假设该元素引用标签“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
        }
    }

Assuming that element refers to tag 'a' following code should extract what you want and work also if you have content before and after the 'b' and 'c' tags

    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
        }
    }
夏末染殇 2024-11-13 01:11:11

迭代根元素的节点 ()。在您的示例中,第二个节点(索引为 2,因为节点从 1 开始索引)将是文本节点。

Document document = ...; // create org.w3c.dom.Document instance from XML
document.getDocumentElement().getChildNodes().item(2).getTextContent();

Iterate over the nodes of root element (<a>). In your example the second node (with index 2, since nodes are indexed from 1) will be the text node.

Document document = ...; // create org.w3c.dom.Document instance from XML
document.getDocumentElement().getChildNodes().item(2).getTextContent();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文