使うと綺麗にまとまります。$result->nodeValue;随分すっきりしました。検索条件を指定して抽出します。ノードを取得しています。「/」は階層を表します。いう名前の要素を全て選択します。ディレクトリパスの書き方と同様に「.」は現在のノードを表し、「..」と書けばその親を指定することも出来ます。得られるので、「text()=’test’」とするとテキストが「test」である場合という条件になります。番目に見つかったノードという条件であれば「/data/sample[1]」のように指定できます。ノードという意味になります。「/data/sample[position()=1]」と書いても同じです。最後に見つかったノードであれば「/data/sample[last()]」という書き方ができます。あるものを取得してみます。$result->nodeValue;条件は「and」「or」を使って複数指定することもできます。あるという条件になります。XPathクエリの「/」は子ノード(一つ下の階層)までを検索対象にしますが、クエリに「//」をつかうとそのノード以下の子孫ノード(すべての階層のノード)が対象になります。「/data//sample」のように探索することも出来ます。いう名前のノードを選択することになります。組み合わせることができます。green」と表示されます。ノードが抽出されているのがわかります。第2引数として絞込元となるノード(コンテキストノード)を渡します。そのさいクエリを「//title」のようにしてしまうとコンテキストノードを指定する意味がなくなってしまうので、「.//title」などの相対的な書き方にします。わかりやすくまとめてくださっています。$xpath->query('/data/sample[text()="test"]')->item(0);$result->parentNode->removeChild($result);$root->removeChild($result);子ノードの削除は親ノードから行います。格納されているのでそれを利用します。ようにしてパスを遡って親ノードを取得する方法もあります。実際に操作してみるとなんとなくややこしいように見えるので基本的な方法をまとめておきます。ドキュメントを作ります。ドキュメントを作り、その中にファイルの内容を読み込みます。出力したい時は次のようにします。ノードを追加するのが基本的な流れです。この親ノードに値を持つ子ノードを追加してみます。"Hello"));今回は省略して一行にまとめてみましたがやっていることは同じです。実行結果は下のようなります。挿入することも出来ます。CDATASection内部では「<>」などの記号をエスケープすることなく扱うことが出来ます。通常のテキストノードであっても自動的に「&lt;」のように変換されるので問題は有りません。$content;ノード値の取得、編集、検索などの方法は次回で説明します。[PR]AboutPHP初心者が自らのためにまとめた備忘録です。所々おかしな記述があるかと思いますが、その時はよろしくお願いします。断りがない場合PHPのバージョンは5.6以上を想定しています。