Sorunuzu biraz altında belirlenmiş, yani yorumlamak için çeşitli yollar vardır. Eğer (onların alt tüm öğeleri ile) geçerli öğenin tüm doğrudan alt öğeleri istiyorsanız, o zaman kullanın
*/*
Lütfen Örneğin, bu size verir
<span>
<cite>
</cite>
</span>
ve
<span>
<cite>
</cite>
</span>
Tüm çocuk istiyorsanız nodes, daha sonra kullanmak node()
yerine *
:
*/node()
Lütfen Örneğin, bu size verir both sub-elements as above, alongside with newline/indentation text()
nodes.
If, however, you want to have only the child nodes ve not their children as well (i.e. only the span
elements, but without their child elements), you must use two expressions:
*/*
aracılığıyla doğrudan alt öğeleri seçmek
- process the those child elements ve select only the text nodes ve not the grvechildren elements via
text()
Benim PHP biraz paslı, ama bu biraz gibi çalışması gerekir:
$doc = new DOMDocument;
// set up $doc
$xpath = new DOMXPath($doc);
// perform step #1
$childElements = $xpath->query('*/*');
$directChildren = array();
foreach ($childElements as $child) {
// perform step #2
$textChildren = $xpath->query('text()', $child);
foreach ($textChildren as $text) {
$directChildren[] = $text;
}
}
// now, $directChildren contains all text nodes