我对基于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中的值。
发布于 2021-02-01 21:48:52
将命名空间添加到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));https://stackoverflow.com/questions/65993158
复制相似问题