我正在尝试使用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);
这似乎不起作用。我如何考虑属性?
谢谢!
答案 0 :(得分: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
)
因此推荐。