如何在php中通过DOM解析xml

时间:2012-10-27 05:29:27

标签: php xmldom

<?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 来检索值。使用nodeValue我得到像A和XYZ这样的值但是我想要的值是xml格式的
     <book> <title>A</title> </book> <author> <name>xyz</name> </author>

2 个答案:

答案 0 :(得分: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));
    }
?>

答案 1 :(得分:0)

如果使用simpleXMl或simpleXMIterator进行解析,则每个节点都是一个simpleXML元素,您可以将其作为XML独立输出。