Я хочу использовать условие ИЛИ (более одного раза) в своем выражении XPath, чтобы извлечь то, что мне нужно в содержимом, до того, как встретится определенная строка, такая как «Справочник», «Для получения дополнительной информации» и т. Д. Что у меня естьниже, кажется, не работает, когда я использую его в PHP, но он работает на тестере XPath.Любая помощь будет принята с благодарностью.Кроме того, может ли выражение быть сжатым?
"//p[starts-with(normalize-space(),'Reference')]/preceding-sibling::p |
//p[starts-with(normalize-space(), 'For more')]/preceding-sibling::p |
//p[starts-with(normalize-space(),'Something')]/preceding-sibling::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 given the nation's booming economy
and the hundreds of millions of dollars that city, county and
state officials have directed toward the problem.
</p>
<p>
"We cannot let a set of difficult numbers discourage us
or weaken our resolve" Garcetti said.
</p>
<p>
For more information: Maeve Reston, CNN
</p>
</article>
</main>
</root>
Результат, который я ищу, будет следующим:
<p>
The stunning increase in homelessness announced in Los Angeles
this week — up 16% over last year citywide — was an almost an
incomprehensible conundrum given the nation's booming economy
and the hundreds of millions of dollars that city, county and
state officials have directed toward the problem.
</p>
<p>
"We cannot let a set of difficult numbers discourage us
or weaken our resolve" Garcetti said.
</p>