我正在寻找PHP中的XML解析器,在这里我们可以在XML验证上设置限制级别。基本上,我希望将XML解析器设置为这样一种方式,即解析器不验证值,而它只是验证标记。我试过SimpleXML
/ DOM
,我没能找到。
更多信息
例如:
<XMLtag1>
<XMlTag2>&#1;&#1;&#1;&#1;&#1;/XMlTag2>
<XMlTag3>&#1;&#1;&#1;&#1;&</XMlTag3>
<XMlTag3>`Rb&#3;&#3;</XMlTag3>
</XMLtag1>
在上面的XML解析器中,将验证这些值,并且它会给出一些错误,比如xmlParseCharRef
,我想避免这种错误。
更清楚我的问题,。
我得到了一个XML文件,当我试图解析它时,会得到一个错误,如这里的堆栈溢出问题所描述的那样。
在那里给出的答案对我来说并不令人满意。因此,实际上,您可以看到XML解析器正在尝试解码&#xx格式。我不想这样。
有什么帮助吗?谢谢菲利普。
发布于 2015-06-02 03:59:03
SimpleXML/DOM只验证文档的格式是否良好-- XML语法是否正确。高级验证可以用DOM完成。
DOMDocument::validate()
根据定义的DTD验证当前文档。DOMDocument::schemaValidate[Source]()
对给定架构进行验证DOMDocument::relaxNGValidate[Source]()
对给定的RelaxNG进行验证哪些元素、属性和值被定义为DTD/Schema/RelaxNG。
XML文档必须有良好的格式。这不是验证问题,而是如果XML包含致命的语法错误,解析器就无法读取XML。并不是所有的语法错误都是致命的,如果您对结果满意,可以忽略一些错误。
如果XML包含致命的语法错误,则必须使用字符串函数或正则表达式来修复它们。
https://stackoverflow.com/questions/30593422
复制相似问题