2017-01-02 8 views
0

PHPのfirstChild以外のXMLファイルの別の子をどうやって取得できますか?PHPでXMLファイルの 'firstChild'以外の子に入る方法は?

 $root = $xmldoc->firstChild; 

が、私は単純に第二子または別のものに得ることができます: 私はこのようなコードがありますか?

+1

xml構造はどのように見えますか?より詳細な例を説明し、ノードがあなたがtpを得たいと言っているものを説明してください。 PHPには、XMLノードを取得するためのいくつかのメソッドがあります。 – Marcel

+0

あなたの答えをありがとう。私のコード*の$ルート= $ xmldoc->のfirstChildでは ; *私は> XMLDATA <にアクセスすることができますが、私は希望:私はこのような構造を持っていますXMLファイルの2番目の子である> data <に何かを追加します。どうやってやるの? – servitus

+0

定義上、正しい形式のXML文書(ルート要素は1つしかありません)(https://www.w3.org/TR/xml/#dt-root)は、例の 'xmldata'にあります。要素 'data' **はXMLファイル**の2番目の子要素ではありません。ルート要素の最初の子です(もちろん、ルート要素と各要素は複数の子を持つことができます)。 – lfurini

答えて

0

問題の解決策は、このようなものになる可能性があります。最初に、あなたの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(); 

このコード例はテストされていません。楽しむ。 ;)

+0

$ root = $ xmldoc-> getElementsByTagName( 'data') - > item(0); ありがとうございます:) – servitus

関連する問題