1

ドキュメントのDOMを介して正規表現で見つかった結果を読みたいので、preg_matchで見つかった要素のparentNodeにアクセスしようとしています。divの量は可変であり、実際のIDや一致できるその他の属性がないため、PHPのDOMDocumentから直接アクセスすることはできません。

これを説明すると、次の例ではmatch_me、preg_match と一致させてから、parentNode (div) にアクセスし、すべての子要素 ​​(p) を DOMdocument オブジェクトに配置して、簡単に表示できるようにします。

   <div> 
   .... variable amount of divs
   <div>
   <div>
       <p>1 match_me</p><p>2</p>
   </div>
   </div>
   </div>
4

1 に答える 1

1

DOMXpath子の値によってノードを照会するために使用します。

$dom = new DOMDocument();
// Load your doc however necessary...

$xpath = new DOMXpath($dom);

// This query should match the parent div itself
$nodes = $xpath->query('/div[p/text() = "1 match_me"]');
$your_div = $nodes->item(0);
// Do something with the children
$p_tags = $your_div->childNodes;


// Or in this version, the query returns the `<p>` on which `parentNode` is called
$ndoes = $xpath->query('/p[text() = "1 match_me"]');
$your_div = $nodes->item(0)->parentNode;
于 2012-06-18T01:15:59.630 に答える