2013-04-17 87 views
-1

是否可以使用simplexml更新xml的節點屬性? 例如:我的程序實際上是一個老師的測驗編輯器,作爲一名教師,我想編輯一個具體的問題屬性。即使用php更新xml中的節點屬性使用php

<Quiz> 
<topic text="Preparation for Exam"> 
    <subtopic text="Math"> 
       <question text="1 + 1 = ?"> 
       <answer num="A" Text="1" /> 
       <answer num="B" Text="2" /> 
       <answer num="C" Text="3" /> 
       <answer num="D" Text="4" /> 
       </question> 
       <question text="4 * 4 = ?" > 
       <answer num="A" Text="12" /> 
       <answer num="B" Text="14" /> 
       <answer num="C" Text="16" /> 
       <answer num="D" Text="18" /> 
       </question> 
     </subtopic> 
     </topic> 
     </Quiz> 

是否有可能?儘管我已經嘗試了很多方法,例如刪除前一個節點,然後插入編輯過的節點。但這一招只適用於最後一個節點...其他節點用它只是換

+0

來吧傢伙....需要幫助這裏.... – user2083529

+0

你也可以嘗試使用phpQuery類而不是SimpleXML。 –

+0

是的。繼續先生,我會很高興看到的代碼:) – user2083529

回答

0
<?php 
$subtopic = new SimpleXMLELement(data()); 
$subtopic->question[1]['text'] = 'lalala'; 
$subtopic->question[1]['foo'] = 'bar'; 

foreach($subtopic->question[1]->answer as $answer) { 
    $answer['Text'] .= '(dez)'; 
} 

echo $subtopic->asXML(); 


function data() { 
    return <<< eox 
<subtopic text="Math"> 
<question text="1 + 1 = ?"> 
<answer num="A" Text="1" /> 
<answer num="B" Text="2" /> 
<answer num="C" Text="3" /> 
<answer num="D" Text="4" /> 
</question> 
<question text="4 * 4 = ?" > 
<answer num="A" Text="12" /> 
<answer num="B" Text="14" /> 
<answer num="C" Text="16" /> 
<answer num="D" Text="18" /> 
</question> 
</subtopic> 
eox; 
} 

打印

<?xml version="1.0"?> 
<subtopic text="Math"> 
<question text="1 + 1 = ?"> 
<answer num="A" Text="1"/> 
<answer num="B" Text="2"/> 
<answer num="C" Text="3"/> 
<answer num="D" Text="4"/> 
</question> 
<question text="lalala" foo="bar"> 
<answer num="A" Text="12(dez)"/> 
<answer num="B" Text="14(dez)"/> 
<answer num="C" Text="16(dez)"/> 
<answer num="D" Text="18(dez)"/> 
</question> 
</subtopic> 
+0

先生,是否有可能改變問題與答案同時使用您的代碼? @VolkerK – user2083529

+0

是的,請參閱更新 – VolkerK

+0

先生,我得到一些愚蠢的錯誤....我的xml文件的名稱是'questions.xml'?我已經重寫了我的xml代碼的完整結構。你可以嘗試定義要編輯的問題的路徑嗎?請..謝謝 – user2083529