【问题标题】:How do i validate XML against a schema (php or perl or possible C++)我如何根据模式(php 或 perl 或可能的 C++)验证 XML
【发布时间】:2010-12-04 00:26:56
【问题描述】:

我需要接收 XML 并根据模式文件对其进行验证。之后我必须根据命令调用一个函数(例如 updateContactList)。做这个的最好方式是什么?我担心验证 XML(并报告错误),我不知道将数据放入函数中运行的最佳方法是什么

-edit- 注意:通过验证模式,我需要验证(正则表达式)模式。如果我可以使用 XML 和模式调用函数并让它返回 false + error msg 或 true,那就太好了

【问题讨论】:

  • 正则表达式模式是什么意思?您不应该尝试根据正则表达式验证 XML。

标签: php xml validation xsd


【解决方案1】:

我不确定您所说的正则表达式模式是什么意思?验证 XML 文档的最常用方法是通过XSD。您可以为此使用DomDocument->schemaValidate

$doc = new DOMDocument();
$doc->load($tempFile);
$doc->schemaValidate('schema.xsd');

还有对应的DomDocument->relaxNGValidate 用于验证较少使用的RelaxNG 架构。

如果您计划捕获错误并对其进行处理,而不仅仅是验证真假,您可能还想使用error-handler functions for libxml。本质上,在加载和验证文档之前调用libxml_use_internal_errors(true);,并使用libxml_get_errorsdisplay_xml_error 获取错误。

【讨论】:

    猜你喜欢
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    相关资源
    最近更新 更多