Условно вставить текстовый узел в документ XML - PullRequest
1 голос
/ 22 марта 2011

Структура моего XML-документа следующая:

<tr>
<seg>
<source>source_text</source>
<dest>dest_text</dest>
</seg>

...
<seg>
<source>source_text</source>
</seg>

</tr>

Обратите внимание, что элемент dest присутствует не всегда.Я хочу отсканировать файл с помощью PHP и вставить элемент dest (с некоторым текстом) каждый раз, когда его нет в узле сегмента.

Любая помощь будет принята с благодарностью.Patrick

1 Ответ

1 голос
/ 22 марта 2011

Попробуйте, я протестировал этот фрагмент, у меня работает:

$xml = '<tr>
<seg>
<source>source_text</source>
<dest>dest_text</dest>
</seg>
<seg>
<source>source_text</source>
</seg>
</tr>
';
$xmlObj = new SimpleXMLElement($xml);
foreach($xmlObj as $seg) {
    if(!$seg->dest) {
        $seg->dest = 'dest_text_inserted';
    }
}
echo $xmlObj->asXML();

Выводит то, что вам нужно:

<?xml version="1.0"?>
<tr>
<seg>
<source>source_text</source>
<dest>dest_text</dest>
</seg>
<seg>
<source>source_text</source>
<dest>dest_text_inserted</dest></seg>
</tr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...