通过xpath解析xml值元素

时间:2016-03-23 12:47:20

标签: php xml xpath

这是xml

<yml_catalog date="2016-03-23 13:33">
    <categories>
        <category id="1" parentId="0">Test</category>
        <category id="131" parentId="1">Test 1</category>
        <category id="19" parentId="1">Test 2</category>
        <category id="20" parentId="1">Test 3</category>
        <category id="21" parentId="1">Test 4</category>
        <category id="22" parentId="1">Test 5</category>

我按xpath

获取类别ID

var_dump($xmlObject->xpath("//yml_catalog/shop/categories/category[@id='22']"));die;

我得到了这个输出:

array(1) {
  [0] =>
  class SimpleXMLElement#94 (1) {
    public $@attributes =>
    array(2) {
      'id' =>
      string(2) "22"
      'parentId' =>
      string(1) "1"
    }
  }
}

问题:如何使用方法xpath获取元素Text 5

1 个答案:

答案 0 :(得分:2)

通常使用XPath表达式,您可以使用/text()来获取当前上下文元素的子节点的文本节点,或者使用string()函数包装整个XPath以将第一个返回的元素转换为{ {1}}:

string

具体使用//yml_catalog/shop/categories/category[@id='22']/text() string(//yml_catalog/shop/categories/category[@id='22']) ,您可以将元素转换为SimpleXML,如下所示:

string

演示: https://eval.in/541310

输出: var_dump((string)$xmlObject->xpath("//yml_catalog/shop/categories/category[@id='22']")[0]);