Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有可用的在线libxml2xml解析器,或者有一种使用libxml2standalone解析XML的方法?_Java_Xml_Parsing_Libxml2 - Fatal编程技术网

Java 是否有可用的在线libxml2xml解析器,或者有一种使用libxml2standalone解析XML的方法?

Java 是否有可用的在线libxml2xml解析器,或者有一种使用libxml2standalone解析XML的方法?,java,xml,parsing,libxml2,Java,Xml,Parsing,Libxml2,我们目前正在一个模块上尝试使用LIBXML2组件解析XML,并且发现了一个与此相关的问题,即当一个XML包含一个包含非ASCII字符的名称空间时,比如这个é 示例XML文件: < ?xml version="1.0" encoding="UTF-8"?> <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP:Body> <Helloé xmln

我们目前正在一个模块上尝试使用LIBXML2组件解析XML,并且发现了一个与此相关的问题,即当一个XML包含一个包含非ASCII字符的名称空间时,比如这个
é

示例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解析器进行测试,我们能够检查并确认它是否支持DOM解析器。当我们尝试检查所提供场景的有效性时,我们得到以下错误:

我们也通过其他在线来源对其进行了测试,就像上面说的一样——相同的错误消息

有没有人能告诉我们是否有一种方法可以识别在线工具/资源,我们可以将其精确定位到
libxml2


或者可以测试此功能的示例程序?

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

$ 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é" />
                                                     ^
$xmllint--noout so.xml
so.xml:4:命名空间错误:xmlns:'http://schemas/Hello“”不是有效的URI
^
so.xml:5:命名空间错误:xmlns:ns0:'http://schemas/Hello“”不是有效的URI
^

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

您是否尝试使用有效的URL?我的意思是对任何无效字符使用
%
编码,例如像
é
这样的非ASCII字母。谢谢您的回复,但这也不起作用!你不明白在这个问题上投了反对票吗?有人想解释一下吗?错误消息说“不是有效的URI”,这应该让您研究什么是有效的URI,在这种情况下,您可以自己找到解决方案。否决票是因为缺乏研究,或者正如否决票按钮的工具提示所说:“这个问题没有显示任何研究成果”。另见:谢谢你,我查一下!谢谢-我已经能够验证这一点了!