2017-01-02 2 views
0

PHP에서 firstChild 이외의 다른 XML 파일을 어떻게 가져올 수 있습니까?PHP에서 XML 파일의 'firstChild'이외의 다른 자식을 사용하는 방법은 무엇입니까?

 $root = $xmldoc->firstChild; 

은 단순히 두 번째 자녀 또는 다른 들어갈 수 : 나는이 같은 코드가?

+1

xml 구조는 어떻게 생겼습니까? 더 자세한 예제와 설명을 해주십시오. 노드가 tp를 얻고 자하는 것이 무엇인지를 설명하십시오. PHP는 XML 노드를 가져 오는 몇 가지 방법을 가지고 있습니다. – Marcel

+0

답변 해 주셔서 감사합니다. 내 코드 *의 $ 루트 = $ xmldoc-> firstChild으로 * 내가> XMLDATA <에 액세스 할 수 있지만 내가 좋아하는 것 :이 같은 구조를 가지고 XML 파일의 두 번째 자식 인 data>에 뭔가를 추가합니다. 어떻게해야합니까? – servitus

+0

정의에 따르면, 올바른 형식의 XML 문서 [예 : xmldata']에는 [루트 요소가 하나 밖에 없습니다] (https://www.w3.org/TR/xml/#dt-root)가 있습니다. 'data' 요소 **는 XML 파일의 두 번째 자식이 아니므로 루트 요소의 첫 번째 자식입니다. 물론 루트 요소와 각 요소는 여러 자식을 가질 수 있습니다. – 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에서 가능한 해결책은 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