天天看點

php解析xml

php解析xml有很多種辦法,文檔中有,搜尋一下就一大把的。

今天遇到一個需求:将某個xml中的節點屬性提取出來,然後更新資料庫某一表中的字段。

思路:

解析XML,擷取所有的節點屬性 –> 循環節點集合,擷取對應的屬性 –> 拼接sql字元串存入一數組 –> 将數組轉為字元串儲存于某一檔案中

這裡使用了xpath,在寫代碼的過程中遇到兩個問題:

1、xml的史路徑屬性為D:\xx\…時load不了檔案,改為”/”(linux下的分隔符)就可以了

2、擷取一個節點的屬性,使用::attributes,編輯器就不停的紅色提示,找到半天文檔,最後用-&gt;getAttribute()就行了(猜的,因為太奇怪了,它支援-&gt;previousSibling和-&gt;nodeValue),按照,文檔上的<b>DOMElement::getAttribute</b>直接就報錯了..

php解析xml

下面是示例代碼:

因為資料是從資料庫表中生成出來的,是以找到的節點數即為表中的記錄總數。生成後可以大概看一下内容是否正确,然後再執行該sql腳本便達到目的了。