【问题标题】:Search and get with XMLreader and PHP使用 XMLreader 和 PHP 进行搜索和获取
【发布时间】:2020-04-03 15:51:05
【问题描述】:

我有一个 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 中搜索该值,我想获得孔刺元素。 1 级的说法。

<prod>
    <ean>price</ean>
    <ean>1234</ean>
</prod>

【问题讨论】:

  • 您可能需要找到每个&lt;prod&gt; 元素,然后自己检查数据。您可以将元素的内容作为 SimpleXML 获取,以便于测试。
  • 这一年我一直在做,但是以这种方式搜索孔文件非常耗时,因此认为另一种方式可能会更好。
  • 文件是否过大,无法一次性读取?

标签: php xmlreader


【解决方案1】:

您可以使用 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>

【讨论】:

    猜你喜欢
    • 2012-04-11
    • 2011-03-21
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 2016-05-01
    • 2017-06-02
    相关资源
    最近更新 更多