web-dev-qa-db-ja.com

異なる要素に複数の包含があるXPath

異なる要素値を複数含むXPath式を持つことは可能ですか?

[〜#〜] xml [〜#〜]

<data>
   <person>
      <firstname>Kerry</firstname>
      <lastname>Packer</lastname>
      <address>Crown</address>
   <person>
   <person>
      <firstname>Kerry</firstname>
      <lastname>Murdoch</lastname>
      <address>California</address>
   <person>
<data>

[〜#〜] php [〜#〜]

$xml = simplexml_load_string($data);
$elements = $xml->xpath("(//person)[firstname[contains(., 'Kerr')]] and [lastname[contains(., 'och')]]");

現在、XPathを超える式には無効のフラグが付けられています。ただし、1つの要素で使用すると、

$xml->xpath("(//person)[firstname[contains(., 'Kerr')]]"); 

その後、正常に動作します。

11
TeaCupApp

あなたは単に欲しい

//person[contains(firstname, 'Kerr') and contains(lastname, 'och')]
28
Martin Honnen