也许我误解了一些东西但是下面的例子总是在屏幕上打印“XML是有效的”,这有可能因为XML明显被破坏了吗?顺便说一下,我使用的是PHP 5.5.6。
// index.php
<?php
/*
* PHP XMLReader - Check if a xml document is valid
*/
$reader = new XMLReader();
//$reader->open('./valid.xml');
$reader->open('./invalid.xml');
// Set parser options - you must set this in order to use isValid method
$reader->setParserProperty(\XMLReader::VALIDATE, true);
if ($reader->isValid()) {
echo "The XML is valid";
} else {
echo "The XML is NOT valid";
}
和XML
// invalid.xml
<?xmlthisisnotvalid version="1.0" encoding="ISO-8859-1"?>
<note>
<to unclosedattribute=">Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
答案 0 :(得分:0)
像我这样使用SimpleXMLElement工作。
assertTrue方法来自phpunit。
$xmlreader = new \SimpleXMLElement(
$XMLstringTOValidate, 0, false,
$urlForXSD
);
$this->assertTrue(is_object($xmlreader));
SimpleXMLElement构造函数的文档位于 http://www.php.net/manual/en/simplexmlelement.construct.php
我最初开始使用XMLReader,但我无法获取它来获取.xsd。