2011-03-22 97 views
1

在我的XML文檔的結構如下:有條件插入文本節點的XML文檔

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

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

</tr> 

注意,DEST元素並不總是存在。我想用PHP掃描文件,並在每次它不在seg節點中時插入一個dest元素(帶有一些文本)。

任何幫助將不勝感激。 帕特里克

+0

你最好從您的文檔提供一個真正的XML,它會更清晰你的意思 – Yaronius 2011-03-22 13:18:47

+0

@Yaronius:它只是缺少代碼標記標記。已經做了編輯,但等待同行評審。 – 2011-03-22 13:20:20

回答

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> 
+0

謝謝你Yaronius,像一個魅力。我不知道SimpleXMLElement。非常感謝。 – Patrick 2011-03-22 18:05:32