遍历XML在PHP
问题描述:
我有一个我试图解析以下XML代码,但我敢肯定,如何移动的一些数据在PHP中:遍历XML在PHP
<entry>
<id>http://data.treasury.gov:8001/Feed.svc/DailyTreasuryYieldCurveRateData(5360)</id>
<title type="text"></title>
<updated>2011-06-09T20:15:18Z</updated>
<author>
<name />
</author>
<link rel="edit" title="DailyTreasuryYieldCurveRateDatum" href="DailyTreasuryYieldCurveRateData(5360)" />
<category term="TreasuryDataWarehouseModel.DailyTreasuryYieldCurveRateDatum" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Int32">5360</d:Id>
<d:NEW_DATE m:type="Edm.DateTime">2011-06-01T00:00:00</d:NEW_DATE>
<d:BC_1MONTH m:type="Edm.Double">0.04</d:BC_1MONTH>
<d:BC_3MONTH m:type="Edm.Double">0.05</d:BC_3MONTH>
<d:BC_6MONTH m:type="Edm.Double">0.11</d:BC_6MONTH>
<d:BC_1YEAR m:type="Edm.Double">0.18</d:BC_1YEAR>
<d:BC_2YEAR m:type="Edm.Double">0.44</d:BC_2YEAR>
<d:BC_3YEAR m:type="Edm.Double">0.74</d:BC_3YEAR>
<d:BC_5YEAR m:type="Edm.Double">1.6</d:BC_5YEAR>
<d:BC_7YEAR m:type="Edm.Double">2.28</d:BC_7YEAR>
<d:BC_10YEAR m:type="Edm.Double">2.96</d:BC_10YEAR>
<d:BC_20YEAR m:type="Edm.Double">3.83</d:BC_20YEAR>
<d:BC_30YEAR m:type="Edm.Double">4.15</d:BC_30YEAR>
<d:BC_30YEARDISPLAY m:type="Edm.Double">4.15</d:BC_30YEARDISPLAY>
</m:properties>
</content>
</entry>
我只能得到到目前为止作为
entry->content
如下面抛出一个错误有一个冒号:
entry->content->m:properties
如何访问里面有什么内容,作为d:NEW_DATE?
答
SimpleXML中,你可以使用儿童(“前缀”,真)和属性(“前缀”,真)功能访问命名空间内容。
entry->content->children('m', true)->properties
或访问d:NEW_DATE
entry->content->children('m', true)->properties->children('d', true)->NEW_DATE
或一步访问米:type属性
entry->content->children('m', true)->properties->children('d', true)->NEW_DATE->attributes('m', true)->type
+0
谢谢,我想通过包含uri的模式在儿童()中,但也试图找出如何做到这一点,而不必包含uri!你知道两种方法的速度是否有差异? – Choy 2011-06-10 03:27:03
我假设你正在使用DOM解析器,命名空间(米:)处理略有不同。 – Devraj 2011-06-10 01:34:55
这些是命名空间。你必须做一些特殊的事情来访问命名空间的笔记。你在使用simplexml吗? – 2011-06-10 01:35:36
看到http://stackoverflow.com/questions/1133897/how-do-i-parse-xml-containing-custom-namespaces-using-simplexml – 2011-06-10 01:59:13