有条件地在XML文档中插入文本节点

时间:2011-03-22 13:13:52

标签: php xml insert

我的XML文档的结构如下:

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

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

</tr>

请注意,dest元素并不总是存在。我想用PHP扫描文件,并在每次seg节点中不存在时插入dest元素(带有一些文本)。

非常感谢任何帮助。 帕特里克

1 个答案:

答案 0 :(得分:1)

试试这个,我测试了这个片段,对我有用:

$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>