我正在尝试通过PHP在一个XML文档上使用getElementById。
PHP代码是:
$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->validateOnParse = TRUE;
$dom->loadXML(file_get_contents( <DocumentPath> ));
var_dump($dom->getElementById('rect1'));示例XML:
<?xml version="1.0" encoding="utf-8"?>
<rectangles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="XML-DOM-RectSchema.xsd">
<rectangle id="rect1">
    <innerText>Rectangle 1</innerText>
    <bgcolor>black</bgcolor>
    <fontcolor>white</fontcolor>
    <height>50</height>
    <width>100</width>
    <timespan>2002-05-30T09:30:10Z</timespan>
</rectangle>
XSD架构:
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="rectangles">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="rectangle" maxOccurs="unbounded">
                <xsd:complexType mixed="true">
                    <xsd:sequence>
                        <xsd:element name="innerText" type="xsd:string" />
                        <xsd:element name="bgcolor" type="xsd:string" />
                        <xsd:element name="fontcolor" type="xsd:string" />
                        <xsd:element name="height" type="xsd:positiveInteger" />
                        <xsd:element name="width" type="xsd:positiveInteger" />
                        <xsd:element name="timespan" type="xsd:dateTime" />
                    </xsd:sequence>
                    <xsd:attribute name="id" type="xsd:ID" use="required" />
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>
我不明白为什么var_dump会打印"NULL",而当我尝试使用var_dump($dom)时,它会打印正确的内容,所以文档是正确加载的。显然,XML和Schema是格式良好的。
发布于 2017-06-01 22:30:24
$dom必须是对DOM文档输入、编辑文本、标签和其他对象中的一个对象的引用。
https://stackoverflow.com/questions/44310150
复制相似问题