Gar*_*Dan -1 php xml zend-framework zend-framework2
我正在使用这个XML到Json Zend模块.
问题是我可以从我连接的Web服务中收到格式错误的XML字符串.在fromXml Zend方法处理此XML时,它会抛出警告.
所以我想在调用fromXml函数之前验证XML .我怎么知道XML是否有效?优先使用Zend?
我尝试使用如下代码,但我还没有成功:(这个XML字符串在使用fromXml时有效)
<?php
$xml1 = 'asdf';
$xml2 = '<?xml version="1.0" encoding="iso-8859-1" ?>
<sroxml>
<version>1.0</version>
<quantity>1</quantity>
<SearchType>Objetcs List</SearchType>
<ResultType>All events</ResultType>
<object>
<number>AA299100299BB</number>
<event>
<type>BDI</type>
<status>01</status>
<date>07/01/2013</date>
<hour>12:12</hour>
<description>Received</description>
<receiver>MARY WILLIAN </receiver>
<document>AA. 111639676 </document>
<comment> </comment>
<local>Some local</local>
<code>11151970</code>
<city>Some City</city>
<uf>AB</uf>
<sto>11102272</sto>
</event>
</object>
</sroxml>';
$validator = new DOMDocument();
$validator->loadXML($xml2, LIBXML_DTDLOAD|LIBXML_DTDVALID|LIBXML_ERR_WARNING |LIBXML_DTDATTR);
echo "<br>testing<pre>"; var_dump($validator->validate()); echo "</pre><br>";
Run Code Online (Sandbox Code Playgroud)
$dom = new DOMDocument();
$dom->loadXML($xml_string);
if ($dom->validate()) {
echo "This document is valid!\n";
}
Run Code Online (Sandbox Code Playgroud)
要测试字符串是否可以解析为XML,请尝试:
simplexml_load_string(($string)
Run Code Online (Sandbox Code Playgroud)
如果没有,simplexml_load_string返回false,如果一切正常,则返回一个对象.