是否有可用的在线LIBXML2 XML解析器或者使用libxml2独立解析XML的方法?

时间:2017-02-14 03:43:36

标签: java xml parsing libxml2

我们目前正在尝试使用LIBXML2组件解析XML,并且在包含包含非ASCII字符的命名空间(例如此é)的XML时发现了与之相关的问题。

示例XML文件:

< ?xml version="1.0" encoding="UTF-8"?>
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP:Body>
    <Helloé xmlns="http://schemas/Helloé">
      <ns0:Helloé xmlns:ns0="http://schemas/Helloé" />
    </Helloé>
  </SOAP:Body>
</SOAP:Envelope>

通过使用小型测试程序对DOM解析器进行测试,我们能够检查并确认这是受支持的。当我们尝试检查所提供的此方案的有效性时,W3School XML online parser我们收到以下错误:

enter image description here

我们也通过其他在线资源对其进行了测试,就像this一样,即使是相同的 - 同样的错误信息。

有人可以告诉我们是否有办法确定在线工具/资源,我们可以将其指向libxml2

或者可以测试这个的示例程序?

1 个答案:

答案 0 :(得分:1)

只需在命令行上通过libxml2的xmllint运行该文件:

$ xmllint --noout so.xml
so.xml:4: namespace error : xmlns: 'http://schemas/Helloé' is not a valid URI
    <Helloé xmlns="http://schemas/Helloé">
                                           ^
so.xml:5: namespace error : xmlns:ns0: 'http://schemas/Helloé' is not a valid URI
      <ns0:Helloé xmlns:ns0="http://schemas/Helloé" />
                                                     ^

此外,用正确的UTF-8%-escape替换é也可以。只需将URI更改为http://schemas/Hello%C3%A9