【发布时间】:2017-01-11 17:38:57
【问题描述】:
我正在尝试获取所有 title 元素并将它们保存在一个数组中。
XML:
<?xml version="1.0" encoding="UTF-8"?>
<mylist>
<element>
<id>1</id>
<title>Example 1</title>
<status>2</status>
<my_status>2</my_status>
</element>
<element>
<id>2</id>
<title>Example 2</title>
<status>1</status>
<my_status>1</my_status>
</element>
<element>
<id>3</id>
<title>Example 3</title>
<status>2</status>
<my_status>6</my_status>
</element>
<element>
<id>4</id>
<title>Example 4</title>
<status>3</status>
<my_status>6</my_status>
</element>
<element>
<id>5</id>
<title>Example 5</title>
<status>1</status>
<my_status>6</my_status>
</element>
</mylist>
PHP:
$crawler = new Crawler();
$crawler->addXmlContent($data);
$result = $crawler->filterXPath('/mylist/element[not(status=3) and my_status=6]/title/text()');
元素节点需要满足一些条件,所以调用$result->count()应该打印2(示例3和示例5),但它打印0。
谢谢。
编辑:
找到解决方案,XPath 应该是:
$result = $crawler->filterXPath('//mylist/element[not(status=3) and my_status=6]/title/text()');
【问题讨论】:
-
如果这解决了您的问题,那么您就有了不同的 XML 结构。
标签: php xml symfony xpath domcrawler