我正在使用这个XML to Json Zend模块。如何测试XML字符串是否对Zend/IBM Developerworks XML to Json有效?
问题是我可以从我连接的webservice收到一个错误的格式化XML字符串。 当这个XML在fromXml Zend方法中处理时,它会引发警告。
所以我想验证XML,然后从XML函数调用。如何知道XML是否有效?优先使用Zend?
我尝试使用的代码如下,但是我却没有sucess:(使用fromXml当这个XML字符串作品)
<?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>";
通过验证你的意思是标签匹配,并且有一个根元素或xsd模式验证? – 2013-02-27 19:41:26
我想要的唯一的事情是,当我尝试将XML字符串转换为Json时,如果XML无效,我得到一个空的json。 – GarouDan 2013-02-27 19:44:31
@GarouDan:所以你想要做的就是捕获错误,所以如果出现错误,你知道XML无效?! – hakre 2013-02-28 13:31:47