PHP XMLReader :: VALIDATE,始终有效

时间:2014-03-04 10:53:40

标签: php xml validation

也许我误解了一些东西但是下面的例子总是在屏幕上打印“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>

1 个答案:

答案 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。