0

我正在尝试使用 PHP (simplexml) 访问 XML 文件的特定部分而不循环。我只想访问一个特定的字段。但是怎么做?这是xml文件的结构:

<collection xmlns="http://www.loc.gov/MARC21/slim">
    <record>
        <datafield tag="010" ind1=" " ind2=" ">
            <subfield code="a">96174405</subfield>
        </datafield>
        <datafield tag="035" ind1=" " ind2=" ">
            <subfield code="a">(OCoLC)ocm34158924</subfield>
        </datafield>
    </record>
</collection>

例如,我将如何打印 96174405?

print_r ($collection->record->datafield[0]->subfield);

这似乎行不通。我如何解释属性?

谢谢!

4

1 回答 1

1

使用时转换为字符串print_r()

<?php

$collection = simplexml_load_string('<collection xmlns="http://www.loc.gov/MARC21/slim">
    <record>
        <datafield tag="010" ind1=" " ind2=" ">
            <subfield code="a">96174405</subfield>
        </datafield>
        <datafield tag="035" ind1=" " ind2=" ">
            <subfield code="a">(OCoLC)ocm34158924</subfield>
        </datafield>
    </record>
</collection>');

print_r( (string)$collection->record->datafield[0]->subfield );

SimpleXML 扩展对象是动态创建的。

澄清:

如果您不强制转换为字符串,print_r()将改为显示:

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [code] => a
        )

    [0] => 96174405
)

因此推荐。

于 2012-12-03T16:06:16.297 回答