PHP DOMDocument操作によるxml解析
2302 ワード
1.xml概念拡張可能なタグ言語、標準的な汎用タグ言語のサブセットは、電子ファイルをタグする構造的なタグ言語である.xmlとhtmlの違いa.拡張性:xmlは自分で新しいタグを定義することができ、htmlはすでに規定されたタグb.データと表示である:xmlデータと表示は分離されており、htmlは統合されているc.側重点:xmlはデータ構造を記述するために使用され、htmlはどのようにデータを表現するか(各種規定のスタイルとラベル)d.文法:xmlはネストとペアリングを厳格に要求し、htmlは3を要求しない.xmlは主にデータを転送するためであり、データ4を表示するためではない.構文仕様:a.任意の開始ラベルには終了ラベルが必要です.すなわち、ペア閉鎖 b.ラベルが互いにネストできないエラー: 正しい: c.属性に値が必要です.属性値を引用符で含める必要があります.たとえば、 d.特殊文字をエンティティ記号で置き換えるには、>用>を使って
注:大きなテキストに特殊文字が含まれている場合は、CDATA(微信開発xmlにはこれがあります)で保存できます.
XMLファイル
DOM解析XML
注意:phpはSimpleXMLElementとDOMXPathで解析することもできます.XPathはノードのテキストデータをすばやく読み取ることができ,ビッグデータの読み取りは考慮できる.
注:大きなテキストに特殊文字が含まれている場合は、CDATA(微信開発xmlにはこれがあります)で保存できます.
XMLファイル
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<name>php </name>
<price>12</price>
</book>
<book>
<name>php </name>
<price>11</price>
</book>
</books>
DOM解析XML
$dom = new DOMDocument('1.0', 'utf-8'); // DOM
$dom->load('book.xml'); //
$books = $dom->getElementsByTagName('book'); // DOMNodeList
//
echo ' :'.$books->length."<br/>";
foreach ($books as $book)
{
$bookname = $book->getElementsByTagName('name'); // DOMNodeList
$bookprice = $book->childNodes->item(3); // DOMElement ,childNodes
echo 'bookname:'.$bookname->item(0)->nodeValue."<br/>";
echo 'bookprice:'.$bookprice->nodeValue.'<br/>';
// $bookprice->nodeValue = 15; //
}
//
$cbook = $dom->createElement('book');
$cbookname = $dom->createElement('name');
$cbookname_text = $dom->createTextNode('php ');
$cbookname->appendChild($cbookname_text);
$cbook->appendChild($cbookname);
$dom->getElementsByTagName('books')->item(0)->appendChild($cbook);
//
$book3 = $dom->getElementsByTagName('book')->item(2); // DOMElement
$book3->parentNode->removeChild($book3); // DOMElement
$dom->save('book.xml');
注意:phpはSimpleXMLElementとDOMXPathで解析することもできます.XPathはノードのテキストデータをすばやく読み取ることができ,ビッグデータの読み取りは考慮できる.