0

新しいデータを既存の xml ファイルに追加しようとしています。これは私がこれまでに持っているものです:

 $doc = new DOMDocument();
 $doc->formatOutput = true;

 $doc->loadXml('library.xml');

 $path = new DOMXPath($doc);

 $b=$doc->createElement('book');

 $ISBN = $doc->createElement( 'isbn' );
 $ISBN->appendChild(
  $doc->createTextNode( $_GET['isbn'] )
  );
  $b->appendChild( $ISBN );


  $edition = $doc->createElement( 'edition' );
  $edition->appendChild(
  $doc->createTextNode( $_GET['ed'] )
      );
  $b->appendChild( $edition );*/


  $doc->save("library.xml");

データを挿入する場所を取得する方法に問題があります。query() またはこれを使用するものを見ました:

$query = sprintf('//record[./title[contains(., "%s")]]', $searchString);

誰かがパスの書き方を説明できるかどうか疑問に思っています。

4

1 に答える 1

0

//record[./title[contains(., "%s")]]


は xpath クエリです。これは、検索文字列を含むタイトル属性を持つ xml 内のレコード ノードを見つけることを意味します。

必要なノードへの参照を取得してから、それに appendChild を追加する必要があります。既存のノードにどこにも追加していないようです

追加したい場所を取得する方法については、こちらをご覧ください http://php.net/manual/en/domxpath.query.php

于 2012-04-08T16:05:19.147 に答える