首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中用org.jdom.Element访问XML子元素

如何在Java中用org.jdom.Element访问XML子元素
EN

Stack Overflow用户
提问于 2021-02-01 20:59:44
回答 1查看 92关注 0票数 0

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

代码语言:javascript
复制
<?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中的所有字段

代码语言:javascript
复制
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中的值。

EN

回答 1

Stack Overflow用户

发布于 2021-02-01 21:48:52

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

XML:

代码:

代码语言:javascript
复制
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));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65993158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档