相关疑难解决方法(0)

解析XML文件以获取所有命名空间信息

我希望能够从给定的XML文件中获取所有命名空间信息.

例如,如果输入XML文件类似于:

<ns1:create xmlns:ns1="http://predic8.com/wsdl/material/ArticleService/1/">
   <ns1:article xmlns:ns1="xmlns:ns1='http://predic8.com/material/1/">
      <ns1:id>1</ns1:id>
      <description>bar</description>
      <name>foo</name>
      <ns1:price>
         <amount>00.00</amount>
         <currency>USD</currency>
      </ns1:price>
      <ns1:price>
         <amount>11.11</amount>
         <currency>AUD</currency>
      </ns1:price>
   </ns1:article>
   <ns1:article xmlns:ns1="xmlns:ns1='http://predic8.com/material/1/">
      <ns1:id>2</ns1:id>
      <description>some name</description>
      <name>some description</name>
      <ns1:price>
         <amount>00.01</amount>
         <currency>USD</currency>
      </ns1:price>
   </ns1:article>
</ns1:create>
Run Code Online (Sandbox Code Playgroud)

我希望输出看起来像这样(在这种情况下以逗号分隔):

create, ns1, http://predic8.com/wsdl/material/ArticleService/1/
article, ns1, http://predic8.com/material/1/
price, ns1, http://predic8.com/material/1/
id, ns1, http://predic8.com/material/1/
Run Code Online (Sandbox Code Playgroud)

重要笔记:

重要的是我们还要考虑在特定命名空间内定义的子节点,但其定义可以在更高节点处定义.例如,我们仍然想要获取节点ns1:id,我们需要追溯到父节点ns1:article以发现命名空间URL是xmlns:ns1='http://predic8.com/material/1/

我在Java中实现,所以我不介意基于Java的解决方案,甚至基于XSLT的解决方案似乎都是合适的.

java xml xslt xpath xquery

4
推荐指数
2
解决办法
5856
查看次数

标签 统计

java ×1

xml ×1

xpath ×1

xquery ×1

xslt ×1