2012-10-27 72 views
0
<?xml version="1.0" encoding="utf-8"?> 
<info> 
    <report id="1"> 
     <book> 
      <title>A</title> 
     </book> 
     <author> 
      <name>xyz</name> 
     </author> 
    </report> 
    <report id="2"> 
     <book> 
      <title>B</title> 
     </book> 
     <author> 
      <name>xyz</name> 
     </author> 
    </report> 
    <report id="3"> 
     <book> 
      <title>C</title> 
     </book> 
     <author> 
      <name>xyz</name> 
     </author> 
    </report> 
</info> 

這是我的XML,我想檢索每個報告,並將其保存到數據庫
我將XML文件加載到DOM,並且可以使用的nodeValue retrive價值解析XML。通過使用的nodeValue我得到像A和XYZ值,但我想要的值以XML格式
<book> <title>A</title> </book> <author> <name>xyz</name> </author>如何通過DOM在PHP

+0

@madan我不明白你的問題,你想用PHP讀取XML文件,然後將數據保存到數據庫? – oletob

+0

不是數據完全想要訪問每個報告塊並以xml格式保存到數據庫 – madan

+0

好吧,但我需要知道您是否想通過PHP訪問每個報告塊的XML文件? – oletob

回答

1

我想你正試圖獲得每個報表節點以及它的內容。你可以這樣做:

<?php 
    $doc = DOMDocument::loadXML(' x m l s t r i n g '); 

    $reportNodeList = $doc->getElementsByTagName('report'); 
    foreach($reportNodeList as $reportNode) { 
     echo htmlspecialchars($doc->saveXML($reportNode)); 
    } 
?> 
+0

非常感謝你 – madan

0

如果使用SimpleXML的或simpleXMIterator解析,每個節點將是一個SimpleXML的元素,你可以獨立地輸出XML。