【发布时间】:2011-09-28 08:31:59
【问题描述】:
您好,这是我的第一篇文章。 我正在尝试使用 php 解析 xml,但我坚持使用它
我的 xml 示例:
<xml xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly' rs:CommandTimeout='30'>
<s:AttributeType name='ows_LinkTitle' rs:name='Phone Number*' rs:number='1'>
<s:datatype dt:type='string' dt:maxLength='512' />
</s:AttributeType>
<s:AttributeType name='ows_GSM_x0020_PUK' rs:name='GSM PUK' rs:number='2'>
<s:datatype dt:type='string' dt:maxLength='512' />
</s:AttributeType>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row ows_LinkTitle='628558621183' ows_GSM_x0020_PUK='41016732'/>
<z:row ows_LinkTitle='628558621181' ows_GSM_x0020_PUK='21783670'/>
</rs:data>
</xml>
我正在尝试从每个 'z:row' 中获取值 非常感谢任何帮助。谢谢
我正在尝试这段代码,但它不起作用
$xml_all = simplexml_load_string($xmlnya);
echo '<ol>';
foreach ($xml_all->xml->rs->z as $zrow)
{
echo '<li> ows_LinkTitle: '.$zrow['ows_LinkTitle'];
echo '</li>';
}
echo '</ol>';
【问题讨论】:
-
您的 XML 格式错误(缺少
s命名空间声明,缺少s:ElementType结束标记。请在尝试“解析”它之前修复它。 -
您可以尝试使用 simplexml。问题是您的 xml 字符串远非有效(没有“s”命名空间,“
”未关闭)。 -
@naboen:如果/当您修复 XML 时,您是否希望在 PHP 中使用任何特定的库? DOM、SimpleXML、XMLReader 还是其他?