2010-11-23 129 views
0

我一直在環顧四周,但仍然無法找到一個可行的答案來編輯和刪除XML與PHP沒有使用simpleXML(我多麼希望我可以使用它)。我希望有人可以爲我簡單分解它,因爲我的大腦不適應這種東西! XML文件我有工作看起來是這樣的:用PHP編輯和刪除XML節點

<allentries> 
    <entry> 
    <entryid>1</entryid> 
    <title>This is the title</title> 
    <date>2010</date> 
    <author>Some Guy</author> 
    </entry> 
    <entry> 
    <entryid>2</entryid> 
    <title>This is Another title</title> 
    <date>2011</date> 
    <author>Some Other Guy</author> 
    </entry> 
    <entry> 
    <entryid>3</entryid> 
    <title>This is the other title</title> 
    <date>2012</date> 
    <author>And Another Guy</author> 
    </entry> 
</allentries> 

我需要能夠做兩件事情用PHP - 首先,我需要能夠接受從形式發佈的價值觀,選擇正確的條目根據entryid編號並使用新數據修改該條目中的每個元素。例如。如果entryid = 2,則跳至第二個條目,並將標題,日期和作者中的文本替換爲新數據。

我需要做的第二件事情(具有明顯不同的功能)是根據entryid號碼選擇條目並刪除整個條目,標籤,數據,子代和所有條目。

聽起來好像不應該太難,但我迄今爲止使用的每個示例都沒有做任何事情。任何人都可以提出任何可以幫助我的任何地方或任何其他教程嗎?

非常感謝您的時間!

+1

請您澄清一下爲什麼您不能使用SimpleXML,以及您是否可以使用任何其他[可用的XML擴展](http://de2.php.net/manual/en/refs.xml.php),最好是[ DOM(http://de2.php.net/manual/en/book.dom.php)? – Gordon 2010-11-23 08:39:49

+0

我沒有訪問權限來更改xml文件 - 我的印象是,您需要添加頂部/尾部標籤以使XML讀取爲字符串,以便與simplexml一起使用 - 任何不需要我的擴展更改xml文件會很好,我認爲 – HappyNuclear 2010-11-23 09:33:41

回答

0

2種快捷方式,既使用正則表達式:

  • 休息使用正則表達式的XML數組,用的EntryID關鍵
    • 上更新的價值只是構建新的價值和更換在指定的關鍵
    • 上刪除正好被清除
  • 使用正則表達式的值來代替節點

不知道這兩種情況下的性能。我會盡量提供一個正則表達式來幫助你。

加布裏埃爾

0

好了,不好意思,做了一些進一步的研究和利用找到了一個很好的例子,在this site

$xml_file = "thefile.xml"; 
if(!$xml=simplexml_load_file($xml_file)){ 
    trigger_error('Error reading XML file',E_USER_ERROR); 
} 

simplexml_load_file而不是simplexml_load_string作品就像一個魅力吧!難怪你們感到困惑 - 謝謝你們的回覆,並容忍我的無辜!