萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> 怎麼用php解析xml文件

怎麼用php解析xml文件

   DOMElement

  DOMElement DOMDocument::createElement ( string $name [, string $value ] )

  創建節點元素

  String $name:節點名

  String $value:節點的值

  8、 添加節點

  •DOMNode DOMNode::appendChild ( DOMNode $newnode )

  添加子節點

  DOMNode $newnode:新節點

  在dom操作中,增刪改操作必須依賴於父節點

  9、 保存

  •string DOMDocument::saveXML

  保存至某個字符串中

  •int DOMDocument::save ( string $filename )

  保存至某個文件中

  String $filename:文件名

  10、 刪除節點

  •DOMNode DOMNode::removeChild ( DOMNode $oldnode )

  刪除節點

  DOMNode $oldnode:要刪除的節點

  11、 更新節點

  •DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )

  DOMNode $newnode:新節點

  DOMNode $oldnode:原節點

  12、 添加屬性

  •DOMAttr DOMElement::setAttribute( string $name , string $value )

  string $name :屬性名

  string $value :屬性值

  13、 修改屬性

  DOMAttr DOMElement::setAttribute( string $name , string $value )

  string $name :屬性名

  string $value :屬性值

  14、 刪除屬性

  •bool DOMElement::removeAttribute ( string $name )

  string $name:要刪除的屬性名稱

  15、 獲取屬性

  •string DOMElement::getAttribute ( string $name )

  string $name:要獲取的屬性值的屬性名

  DOMDocument還是PHP5後推出的DOM擴展的一部分,可用來建立或解析html/xml,目前只支持utf-8編碼。

代碼如下  

$xmlstring = <<<XML
<?xml version='1.0'?>
<document>
<cmd attr='default'>login</cmd>
<login>imdonkey</login>
</document>
XML;

$dom = new DOMDocument();
$dom->loadXML($xmlstring);
print_r(getArray($dom->documentElement));

function getArray($node) {
$array = false;

if ($node->hasAttributes()) {
foreach ($node->attributes as $attr) {
$array[$attr->nodeName] = $attr->nodeValue;
}
}

if ($node->hasChildNodes()) {
if ($node->childNodes->length == 1) {
$array[$node->firstChild->nodeName] = getArray($node->firstChild);
} else {
foreach ($node->childNodes as $childNode) {
if ($childNode->nodeType != XML_TEXT_NODE) {
$array[$childNode->nodeName][] = getArray($childNode);
}
}
}
} else {
return $node->nodeValue;
}
return $array;
}

  SimpleXML

  SimpleXML是PHP5後提供的一套簡單易用的xml工具集,可以把xml轉換成方便處理的對象,也可以組織生成xml數據。不過它不適用於包含namespace的xml,而且要保證xml格式完整(well-formed)。它提供了三個方法:simplexml_import_dom、simplexml_load_file、simplexml_load_string,函數名很直觀地說明了函數的作用。三個函數都返回SimpleXMLElement對象,數據的讀取/添加都是通過SimpleXMLElement操作

代碼如下  


$string = <<<XML
<?xml version='1.0'?>
<document>
<

copyright © 萬盛學電腦網 all rights reserved