【问题标题】:How to access child element of XML in Java using org.jdom.Element如何使用 org.jdom.Element 在 Java 中访问 XML 的子元素
【发布时间】:2021-02-01 12:59:44
【问题描述】:

我对基于 XML 的 REST 操作完全陌生。 我有一个 XML 文件

<?xml version="1.0" encoding="UTF-8"?>
<BillOfLadingCoverLetter xmlns:cmp="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Bill Of Lading Cover Letter.xsd">
    <Header>
        <cmp:DocumentID>
            <cmp:RID>shipper</cmp:RID>
            <cmp:GeneralID>2</cmp:GeneralID>
            <cmp:Version>1</cmp:Version>
        </cmp:DocumentID>
        <cmp:DocType>
            <cmp:DocTypeCode>1111</cmp:DocTypeCode>
            <cmp:DocTypeDescription>COVER LETTER</cmp:DocTypeDescription>
        </cmp:DocType>
        <cmp:Status>FINAL</cmp:Status>
    </Header>
    <Body/>
</BillOfLadingCoverLetter>

我想访问并获取此 XML 中的所有字段

import org.jdom.Element;

Element jdomRoot = doc.getRootElement();

 //2 jdomRoot.getChild("Header").getChild("cmp:DocumentID");
 1 jdomRoot.getChild("Header").getChild("DocumentID");

1 和 2 都返回 null。但是 jdomRoot.getChild("Header") 是返回值。

请帮助我如何访问 XML 中的值。

【问题讨论】:

标签: java xml element jdom get-childitem


【解决方案1】:

将命名空间添加到 xml 文件。在程序中使用它。

XML:

代码:

SAXBuilder builder = new SAXBuilder();
FileInputStream in = new FileInputStream(xmlFile);
Document doc = builder.build(in);

Element root = doc.getRootElement();
Namespace xmlNamespace = root.getNamespace();
Element headerEle = root.getChild("Header",xmlNamespace);
Element docIDEle = headerEle.getChild("DocumentID", xmlNamespace);
System.out.println(docIDEle.getChildText("RID", xmlNamespace));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 2021-04-25
    • 2019-06-17
    • 1970-01-01
    相关资源
    最近更新 更多