PHPのfirstChild以外のXMLファイルの別の子をどうやって取得できますか?PHPでXMLファイルの 'firstChild'以外の子に入る方法は?
$root = $xmldoc->firstChild;
が、私は単純に第二子または別のものに得ることができます: 私はこのようなコードがありますか?
PHPのfirstChild以外のXMLファイルの別の子をどうやって取得できますか?PHPでXMLファイルの 'firstChild'以外の子に入る方法は?
$root = $xmldoc->firstChild;
が、私は単純に第二子または別のものに得ることができます: 私はこのようなコードがありますか?
問題の解決策は、このようなものになる可能性があります。最初に、あなたのXML構造。アイテムノードをデータノードに追加する方法を尋ねました。
$xml = <<< XML
<?xml version="1.0" encoding="utf-8"?>
<xmldata>
<data>
<item>item 1</item>
<item>item 2</item>
</data>
</xmldata>
XML;
PHPでは、可能な解決策の1つがDomDocumentオブジェクトです。
$doc = new \DomDocument();
$doc->loadXml($xml);
// fetch data node
$dataNode = $doc->getElementsByTagName('data')->item(0);
// create new item node
$newItemNode = $doc->createElement('item', 'item 3');
// append new item node to data node
$dataNode->appendChild($newItemNode);
// save xml node
$doc->saveXML();
このコード例はテストされていません。楽しむ。 ;)
$ root = $ xmldoc-> getElementsByTagName( 'data') - > item(0); ありがとうございます:) – servitus
xml構造はどのように見えますか?より詳細な例を説明し、ノードがあなたがtpを得たいと言っているものを説明してください。 PHPには、XMLノードを取得するためのいくつかのメソッドがあります。 – Marcel
あなたの答えをありがとう。私のコード*の$ルート= $ xmldoc->のfirstChildでは ; *私は> XMLDATA <にアクセスすることができますが、私は希望:私はこのような構造を持っていますXMLファイルの2番目の子である> data <に何かを追加します。どうやってやるの? –
servitus
定義上、正しい形式のXML文書(ルート要素は1つしかありません)(https://www.w3.org/TR/xml/#dt-root)は、例の 'xmldata'にあります。要素 'data' **はXMLファイル**の2番目の子要素ではありません。ルート要素の最初の子です(もちろん、ルート要素と各要素は複数の子を持つことができます)。 – lfurini