【问题标题】:PHP use $xml->xpath multiplePHP 使用 $xml->xpath 多个
【发布时间】:2016-03-06 08:00:00
【问题描述】:

我想将$xml->xpath 用于XML 文件。

下面的第一行成功,但第二行不起作用。

$xml = simplexml_load_string(decode(file_get_contents('http://www.file.net/name.xml')));
if($xml) {
    $dataObjects = $xml->xpath('/feed/in/test[@id="0603162"]'); // First line
    $xmlObjects = $dataObjects->xpath('/get/type[@name="333"]'); // Second line
    print_r($xmlObjects);
}

【问题讨论】:

  • var_dump($dataObjects); 返回什么?
  • array(1) { [0]=> object(SimpleXMLElement)#25 (4) { ["@attributes"]=> array(7) { ["a_id"]=> string( 7)“4142502”[“ad_2”]=>字符串(7)“4503374”[“日期”]=>字符串(10)“06.03.2016”[“id”]=>字符串(7)“4260040”[ "std"]=> string(20) "060316234" ["status"] ...

标签: php xml xpath


【解决方案1】:

您在 Xpath 语法和逻辑中犯了太多错误。代码可能是这样的:1)播放每个元素的第二个xpath,但不播放列表2)在第二个xpath的开始处使用点来查找元素但不在完整文档中

if($xml) {
    $dataObjects = $xml->xpath('/feed/in/test[@id="0603162]'); // First line
    foreach($dataObjects as $xmlObject) {
        $Objs = $xmlObject->xpath('./get/type[@name="333]'); // Second line
        foreach($Objs as $Obj) 
          print_r($Obj);
        }  
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 2011-05-29
    相关资源
    最近更新 更多