所以我有一個網頁顯示XML文件的數據。不過,我也有一個表格,應該能夠更改數據。我想最好的方法是使用PHP中的Fopen函數並編輯特定的文本行。字符串不會很長,最多4個字。我將如何使用fopen以及打開,讀取和寫入文件以查找一行代碼並替換它的一系列函數?我需要找到一種方法來編輯XML文件,當用戶使用PHP提交表單時
回答
我認爲你應該做類似如下:
比賽在你的HTML在你的XML節點輸入標籤的名稱(這只是一個建議,讓你的代碼更有條理)
當您發佈的數據傳回服務器,在你的PHP代碼,使用SimpleXML你可以做以下
給下面的XML文件
<root>
<config id="1">
<name>old name</name>
<category>old category</category>
</config>
<config id="2">
<name>old name</name>
<category>old category</category>
</config>
</root>
//Load the XML file
$xml = simplexml_load_file('PATH TO YOUR XML FILE');
//Update the values that you want to update
foreach($xml->root->config as $configGroup)
{
//Set the $IdToUpdate variable with the Id of the group that you want to update.
if ($configGroup['id'] == $IdToUpdate)
{
$configGroup->name = $_POST['name' . $IdToUpdate];//Your html must have the proper input names.
break;
}
}
//Save the changes
$xml->asXml('PATH TO YOUR XML FILE');
希望這有助於
當然有很多幫助,雖然我想知道,如果我有多個
好的,我會嘗試用該示例更新我的答案 – juanreyesv 2013-05-13 01:09:37
用您要求的示例更新我的答案。希望這可以幫助 – juanreyesv 2013-05-13 01:29:09
你可能想從這裏開始: http://www.php.net/manual/en/refs.xml.php
聽起來像是你需要做的幾件事情。 i)將xml解析爲對象或數組。
ii)找到你想要更新的元素。
iii)更新所述元素後,將xml寫回文件。
嘿,尼克感謝您的回覆。我只想聲明我有一個列出所有創建對象的文件。然後在我的主文件中,我有一個代碼,它從XML文件中提取數據並對其進行良好排序。 – user2235005 2013-05-13 00:20:51
好回答我的問題是很容易的。如果你像我一樣,基本上PHP編程的新手就會發揮作用,並且這樣會變得非常棘手,或者至少對我來說。當您使用XML中的數據時,每個標籤實際上都會成爲一個數組。
<configure id="firstblock">
<name>Name</name>
<category>Old</category>
</configure>
<configure id="second block">
<name>Name2</name>
<category>New</category>
</configure>
請注意配置如何像數組一樣工作。
$xml = SimpleXML_load_file('location of xml file here');
$xml->configure[0]->color = $_POST['name1'];
$xml->configure[0]->category = $_POST['category'];
$xml->configure[1]->name =$_POST['name2'];
$xml->configure[1]->category =$_POST['category2'];
$xml->asXml('location of xml file here');
- 1. 我需要一種方法來提示用戶使用批量輸入
- 2. 當用戶雙擊提交按鈕時,需要避免提交表單兩次
- 3. 需要找到一種方式來使用端口80
- 4. 我需要另一種方法來使用ColorFactory類嗎?
- 5. 我需要幫助來找到一種方法來計算上傳文件的文件大小 - HttpContext.Current.Request.Files
- 6. 需要找到一種方法來對準酒吧屏幕
- 7. 當我使用保存表單的參數提交表單時,rails重定向到編輯頁面
- 8. 我可以找到一種方法來使用Python構建交互式動畫
- 9. 當我父提交表單(使用jQuery)
- 10. 需要找到一種方法來使用Python使用硒單擊消息按鈕
- 11. 需要一種方式來提醒用戶在構建Spotify應用程序時提醒用戶
- 12. 需要建議 - 使用捲髮提交aweber表單提交?
- 13. 使用鏈接提交表單提交。需要幫助
- 14. JavaScript需要提交一個表單到PHP腳本?
- 15. 需要簡單的方法來訪問XML在VB.Net - 痛苦使用LINQ到XML
- 16. 使用PHP提交表單
- 17. 來自Twitter的PHP XML提要用法
- 18. 需要一種方法來做window.location.href(dynamicHTMLstring)
- 19. 需要一種方法來爲接口
- 20. 使用AJAX提交表單到php api
- 21. 編輯表單提交時丟失的舊值文件symfony2
- 22. 同時提交多個表單(編輯配置文件頁面)
- 23. 如果提交表單提交php郵件給用戶
- 24. 尋找一種方法來編輯使用wordpress的css網站背景
- 25. 將HTML表單提交到PHP文件
- 26. 找到一種方法來跟蹤網站用戶
- 27. 需要使用JavaScript或jQuery的一個表單提交幫助
- 28. 當我提交表單時,我想要使用的其他分隔符(不&&=)
- 29. 需要一種方法來從cmd提示符中刪除Livelink中的文件
- 30. Jquery cookie插件 - 當用戶提交表單時設置cookie
我沒有看到一個簡單的方法來實現你正在嘗試做的事情,但是,XML文件是一個非常大的文件嗎?是否可以將整個XML數據發送回服務器並只更新已更改的XML節點? – juanreyesv 2013-05-13 00:01:57
要處理XML,您可以使用SimpleXML庫。這裏是一篇關於如何使用它的文章:http://stackoverflow.com/questions/2092172/edit-xml-with-simplexml – juanreyesv 2013-05-13 00:04:18
@juanreyesv XML文件很小,本身只有27行,但實際數據只有12個短語。這是一個非常簡短的XML文件。 – user2235005 2013-05-13 00:22:13