Die XML im Startbeitrag ist invalide. Aber so würde ich das lösen:
PHP-Code:
$xml = <<<'XML'
<?xml version="1.0" encoding="utf-8"?>
<source>
<anlagen>
<anlage>
<text_modules>
<modul_header>
Werbung
</modul_header>
<modul_text>
Uninteressant
</modul_text>
</text_modules>
<text_modules>
<modul_header>
Aufgaben
</modul_header>
<modul_text>
Interessant
</modul_text>
</text_modules>
<text_modules>
<modul_header>
Daten
</modul_header>
<modul_text>
Interessant
</modul_text>
</text_modules>
<text_modules>
<modul_header>
Angebot
</modul_header>
<modul_text>
Interessant
</modul_text>
</text_modules>
<text_modules>
<modul_header>
Bewertung
</modul_header>
<modul_text>
Unteressant
</modul_text>
</text_modules>
</anlage>
</anlagen>
</source>
XML;
# DOM
$dom = new DOMDocument('1.0', 'utf-8');
$dom->loadXML($xml);
# XPATH
$xpath = new DOMXpath($dom);
# Anfragen aller text_modules unterknoten modul_header dessen nachbarknoten modul_text normalisiert 'Interessant' ist
$result = $xpath->query("anlagen/anlage/text_modules[normalize-space(modul_text) = 'Interessant']/modul_header");
# Knoten normalisieren und zu String konvertieren.
$data = array_map(function(DOMNode $node) {
return trim($node->nodeValue);
}, iterator_to_array($result));
var_dump(
$data
);
Kommentar