操作するデータ
コードをコピー コードは次のとおりです:
">
XML のいくつかの基本概念
1. ノード: ノードは、XML を処理する際に多くのプログラミング言語で使用される、比較的広い概念です。また、ドキュメント全体が 1 つのノードに属します。これは、XML ドキュメントのそれぞれの独立した小さな部分が 1 つのノードであることを意味し、 も同様です。 ;、name="XXXX" は、 タグであり、著者の名前である David Flanagan もテキスト ノードです。
2. 要素: 多くのプログラミング言語では XML 処理が行われます。ノードは API を統合する必要があるため、あまり多くのメソッドは存在しません。要素はノードのサブセットです。簡単に言うと、要素の操作方法は、のようなタグだけです。
3. 属性: <> の XX="OO" のようなものはすべて属性ノードです。必要に応じて、XML にも言語を使用した記号が含まれます。 use これらの特殊文字はエスケープする必要があります
DOMDocumentオブジェクト
私はDOMDocumentオブジェクトを使ってxmlを操作しています もちろんsimpleXmlよりも科学的だと感じたのは全くの個人的な感想です。 。 DOMDocument には、よく使用されるプロパティとメソッドがいくつかあります。
xmlをロード
コードをコピー
コードは次のとおりです:
$path=$_SERVER["DOCUMENT_ROOT"].'/books.xml';
$books=new DOMDocument();
$本-> ロード($path);
ノードと属性の読み取り/走査
コードをコピー
コードは次のとおりです:
$bookElements=$books->getElementsByTagName('book');
foreach($bookElements as $book){
foreach ($book->attributes as $attr) {
echo strtoupper($attr->nodeName).' —— '.$attr->nodeValue.'< ;br/> '; }
エコー '
'; }
もちろん、多くの属性について、1 つだけを読み取りたい場合は、 item(index) メソッドを使用してインデックスによって読み取ることができます
コードをコピーします
コードは次のとおりです:
echo $book- >attributes->item(1) ->nodeValue;
強力な xpath を通じてクエリすることもできます
コードをコピーします
コードは次のとおりです:
強力な xpath を通じてクエリすることもできます
属性/ノードを変更する
コードをコピーする
コードは次のとおりです:
foreach($bookElements as $book){
foreach ($book->attributes as $attr) {
); $ author->nodeValue=strtoupper($author->nodeValue);
}
}
$books->save($path);
属性を変更するには、nodeValue の変更に直接アクセスするか、変更を加えた後に setAttribute メソッドを使用することを忘れないでください。
コードをコピーします
コードは次のとおりです:
$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue));$attr->nodeValue =strtoupper($ attr->nodeValue);
要素/属性を追加します
コードをコピーします
コードは次のとおりです:
$newBook=$books->createElement('book'); #新しい要素を作成します $newBook->setAttribute ('name', 'PHP オブジェクト、パターン、実践');#新しいプロパティを作成する、方法 1
$publisher=$books->createAttribute('publisher');#新しい属性を作成します、方法 2
$publisher->nodeValue='Apress L.P';
$newBook->appendChild($publisher) ; #要素に属性を追加します
$author=$books->createElement('author');#子要素を作成する
$author->nodeValue='Matt Zandstra';
$newBook->appendChild($author);#子要素を追加する親要素
$books->documentElement->appendChild($newBook);#ノード全体を追加します
$books->save($path);
属性/ノードを削除します
コードをコピーします
コードは次のとおりです:
$first=$bookElements->item(0); $first->removeAttribute('publisher');
$second=$bookElements->item(1);
$second->parentNode->removeChild($second);
$books->save($path);
初心者向けのPHP記事には間違いもたくさんあると思いますので、皆さんで批判・修正して一緒に進歩していただければ幸いです。
http://www.bkjia.com/PHPjc/824929.htmlwww.bkjia.com
truehttp://www.bkjia.com/PHPjc/824929.html技術記事操作するデータ コピー コードは次のとおりです。 ?xml version="1.0"? Books book name="JavaScript: The Defiitive Guide" Publisher="O'Reilly Media, Inc." authorDavid Flanagan/author /bo...