php 中的 SimpleXML 设置了 xml 验证限制

SimpleXML in php set the xml validation restriction

我正在 PHP 中寻找 XML 解析器,我们可以在其中设置 XML 验证的限制级别。基本上我想以这样一种方式设置 XML 解析器,即解析器不验证值,它只验证标签。我试过 SimpleXML / DOM 我找不到。

更多信息。

例如:

<XMLtag1>
   <XMlTag2>&amp;#1;&amp;#1;&amp;#1;&amp;#1;&amp;#1;/XMlTag2>
   <XMlTag3>&amp;#1;&amp;#1;&amp;#1;&amp;#1;&amp;</XMlTag3>
   <XMlTag3>`Rb&amp;#3;&amp;#3;</XMlTag3>
</XMLtag1>

在上面的 XML 中,解析器将验证这些值,它可能会给出一些错误,例如 xmlParseCharRef 我想避免这种情况。

我的问题更加清晰

我得到了一个 XML 文件,当我试图解析它时遇到了一个错误,如这里的 Whosebug 问题所述

XML encoding setup and specific charsets

那边的Answer对我来说不是很满意。所以实际上你可以看到 XML 解析器正在尝试解码 &#xx 格式。我不想要那个。

有帮助吗? 谢谢 菲利普.

SimpleXML/DOM 只验证文档格式是否正确 - XML 语法是否正确。可以使用 DOM.

进行高级验证
  • DOMDocument::validate() 根据定义的 DTD
  • 验证当前文档
  • DOMDocument::schemaValidate[Source]() 根据给定的模式进行验证
  • DOMDocument::relaxNGValidate[Source]() 针对给定的 RelaxNG
  • 进行验证

允许哪些元素、属性和值被定义为 DTD/Schema/RelaxNG。

XML 文档必须格式正确。这不是验证问题,而是解析器无法读取 XML 如果它包含致命语法错误。并非所有语法错误都是致命的,如果您对结果没问题,有些语法错误可以忽略。

如果 XML 包含致命的语法错误,您将不得不使用字符串函数或正则表达式来修复它们。