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

问题描述:

我们目前正在尝试使用LIBXML2组件解析XML,并发现与包含非ASCII字符的名称空间的XML(如é)相关的问题。是否有可用的在线LIBXML2 XML解析器或使用libxml2独立解析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

您是否尝试使用**有效的**网址?我的意思是使用'%'编码来处理任何无效的字符,比如像'é'​​这样的非ASCII字母。 – Andreas

+0

感谢您的回复,但这不起作用! –

+0

不明白在这个问题上downvotes?任何人都在意解释? –

只需运行通过的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%的逃生作品代替é。只需将URI更改为http://schemas/Hello%C3%A9即可。

+0

感谢您的支持,我会检查! –

+0

谢谢,我已经验证了这一点! –