Php 在XPath中使用OR运算符
我在XPath表达式中使用OR运算符(不止一次)在遇到特定字符串之前提取内容中所需的内容,例如“引用”、“获取更多信息”等。这些术语中的任何一个都应返回相同的结果,但它们的顺序可能不同。例如,“Reference”可能不是第一个,也可能根本不在内容中,并且其中一个匹配项使用了一个表“About the data”。我希望在这些字符串出现之前包含所有内容 任何帮助都将不胜感激Php 在XPath中使用OR运算符,php,xml,xpath,xml-parsing,domxpath,Php,Xml,Xpath,Xml Parsing,Domxpath,我在XPath表达式中使用OR运算符(不止一次)在遇到特定字符串之前提取内容中所需的内容,例如“引用”、“获取更多信息”等。这些术语中的任何一个都应返回相同的结果,但它们的顺序可能不同。例如,“Reference”可能不是第一个,也可能根本不在内容中,并且其中一个匹配项使用了一个表“About the data”。我希望在这些字符串出现之前包含所有内容 任何帮助都将不胜感激 $expression= “//p[ 以(normalize-space(),“Reference”)或开头 以(norm
$expression=
“//p[
以(normalize-space(),“Reference”)或开头
以(normalize-space(),“For more”开头)
]/前面的兄弟姐妹::p“;
这还需要考虑下表:
$expression=
“//article/table/tbody/tr/td[
以(normalize-space(),“关于使用的数据”开头)
]/前面的兄弟姐妹::p“;
下面是一个例子:
<root>
<main>
<article>
<p>
The stunning increase in homelessness announced in Los Angeles
this week — up 16% over last year citywide — was an almost an
incomprehensible conundrum.
</p>
<p>
"We cannot let a set of difficult numbers discourage us
or weaken our resolve" Garcetti said.
</p>
<p>
References
By Jeremy Herb, Caroline Kelly and Manu Raju, CNN
</p>
<p>
For more information: Maeve Reston, CNN
</p>
<p>Maeve Reston, CNN</p>
<table>
<tbody>
<tr>
<td>
<strong>About the data used</strong>
</td>
</tr>
<tr>
<td>From
</td>
<td>Washington, CNN</td>
</tr>
</tbody>
</table>
</article>
</main>
</root>
洛杉矶宣布无家可归人数惊人增加
本周——比去年全市增长16%——几乎是一个好消息
难以理解的难题。
“我们不能让一系列困难的数字让我们气馁
或者削弱我们的决心”加塞蒂说。
工具书类
杰里米·赫伯、卡罗琳·凯利和曼努·拉朱,CNN
更多信息:美国有线电视新闻网梅夫·莱斯顿
梅夫·莱斯顿,美国有线电视新闻网
关于使用的数据
从…起
华盛顿,CNN
我期待的结果如下
洛杉矶宣布无家可归人数惊人增加
本周——比去年全市增长16%——几乎是一个好消息
难以理解的难题。
“我们不能让一系列困难的数字让我们气馁
或者削弱我们的决心”加塞蒂说。
我希望在这些字符串中的任何一个出现之前包含所有内容
也就是说,您希望第一段之前的内容包含以下字符串之一
包含这些字符串之一的段落包括:
p[starts-with(normalize-space(), 'References') or starts-with(....)]
第一段是
p[starts-with(normalize-space(), 'References') or starts-with(....)][1]
在此之前的段落是:
p[starts-with(normalize-space(), 'References') or starts-with(....)][1]
/preceding-sibling::p
在2.0中,我可能会使用正则表达式:
p[matches(., '^\s*(References|For more information)')]
为了避免重复调用normalize-space()。我得到了您期望的段落以及开始引用的段落
References