使用XMLreader和PHP搜索并获取

问题描述 投票:0回答:1

我有一个xml提要,以及使用XMLreader在EAN值中搜索的内容,当我找到该值时,我想在EAN值所在的元素中获取所有XML。我可以这样做吗?

<prods>
  <prod>
    <ean>price</ean>
    <ean>1234</ean>
  </prod>
  <prod>
    <ean>price</ean>
    <ean>123</ean>
  </prod> 
</prods>

因此,如果我在ean 1234中搜索值,我想获取Hole prod元素。 1级的说法。

<prod>
    <ean>price</ean>
    <ean>1234</ean>
</prod>
php xmlreader
1个回答
0
投票

您可以使用Xpath根据条件选择prod节点:

$content = '<prods>
  <prod>
    <ean>price</ean>
    <ean>1234</ean>
  </prod>
  <prod>
    <ean>price</ean>
    <ean>123</ean>
  </prod> 
</prods>' ;

$xml = simplexml_load_string($content);
$nodes = $xml->xpath("//prod[ean = '1234']") ; // get all prod nodes that satisty "an ean child has content '1234' " 
echo $nodes[0]->asXml(); 

输出:

<prod>
    <ean>price</ean>
    <ean>1234</ean>
</prod>
© www.soinside.com 2019 - 2024. All rights reserved.