我在这里有以下xml文档:编辑:(请参见下面的示例)
我正在使用php / SimpleXML将其转换为对象以读取它:
$xmlContent = file_get_contents($path . '/test.xml'); $tablesRaw = new SimpleXMLElement($xmlContent); echo '<pre>'; print_r($tablesRaw); echo '</pre>';
当我使用print_r时,我看到字段的属性,但没有显示可接受值的属性。这是原始xml的示例(我需要value属性):
<acceptable-value value="0"> Unknown </acceptable-value>
这是我在print_r时看到的:
[acceptable-values] => SimpleXMLElement Object ( [acceptable-value] => Array ( [0] => Unknown [1] => Invalid [2] => Deleted [3] => Valid/Good [4] => Inactive ) )
为什么没有显示属性的任何线索?提前致谢。
编辑:请求一些xml:
<field name="Address1Type" type="String"/> <field name="Address2Street1" type="String"/> <field name="Address2Street2" type="String"/> <field name="Address2Type" type="String"/> <field name="Address3Street1" type="String"/> <field name="Status" type="Integer" access="R"> <acceptable-values> <acceptable-value value="0"> Unknown </acceptable-value> <acceptable-value value="1"> Invalid </acceptable-value> <acceptable-value value="2"> Deleted </acceptable-value> <acceptable-value value="3"> Valid/Good </acceptable-value> <acceptable-value value="4"> Inactive </acceptable-value> </acceptable-values> </field>
这里的简单答案是不print_r()与SimpleXML对象一起使用。因为它们是非PHP数据的包装器,所以通常会显示“整个”对象的函数实际上并不能真正反映您所查看的内容。
print_r()
通过SimpleXML访问属性的方法是使用属性名称,就像它是数组键($node['attribute'])一样。但这 并不 意味着有一个数组的地方使用该密钥,这是一种变相的函数调用。
$node['attribute']
如果您想在编写SimpleXML代码时了解正在查看的节点,请查看我编写的此simplexml_dump()函数(欢迎反馈)。
simplexml_dump()