2010-05-16 13 views
10

यह मुझे बोनकर्स चला रहा है ... मैं बस एक और img नोड जोड़ना चाहता हूं।PHP DOMDocument getElementsByTagname?

$xml = <<<XML 
<?xml version="1.0" encoding="UTF-8"?> 
<gallery> 
    <album tnPath="tn/" lgPath="imm/" fsPath="iml/" > 
    <img src="004.jpg" caption="4th caption" /> 
    <img src="005.jpg" caption="5th caption" /> 
    <img src="006.jpg" caption="6th caption" /> 
</album> 
</gallery> 
XML; 

$xmlDoc = new DOMDocument(); 
$xmlDoc->loadXML($xml); 

$album = $xmlDoc->getElementsByTagname('album')[0]; 
// Parse error: syntax error, unexpected '[' in /Applications/XAMPP/xamppfiles/htdocs/admin/tests/DOMDoc.php on line 17 
$album = $xmlDoc->getElementsByTagname('album'); 
// Fatal error: Call to undefined method DOMNodeList::appendChild() in /Applications/XAMPP/xamppfiles/htdocs/admin/tests/DOMDoc.php on line 19 

$newImg = $xmlDoc->createElement("img"); 
$album->appendChild($newImg); 

print $xmlDoc->saveXML(); 

त्रुटि:

+0

'$ xmlDoc-> getElementsByTagName ('एल्बम') [0];' अब PHP7 में :) –

उत्तर

21

DOMDocument :: getElementsByTagName एक सरणी वापस नहीं करता है, यह रिटर्न एक DOMNodeList। आप अपने आइटम का उपयोग करने के item विधि का उपयोग करने की जरूरत है:

$album = $xmlDoc->getElementsByTagname('album')->item(0); 
+0

mmmm काम करता है: गंभीर त्रुटि: में/आवेदन सरणी के रूप में प्रकार DOMNodeList की वस्तु उपयोग नहीं कर सकते/XAMPP/xamppfiles/htdocs/व्यवस्थापक /tests/DOMDoc.php लाइन 18 – FFish

+0

हुरेय !! बहुत बहुत धन्यवाद माती। – FFish

0
// Parse error: syntax error, unexpected '[' in /Applications/XAMPP/xamppfiles/htdocs/admin/tests/DOMDoc.php on line 17 

आप नहीं कर सकते php में ऐसा करने

$album = $xmlDoc->getElementsByTagname('album')[0]; 

आप इस

$albumList = $xmlDoc->getElementsByTagname('album'); 
$album = $albumList[0]; 

संपादित करना है: getElementsByTagname एक ऑब्जेक्ट देता है ताकि आप यह कर सकें (उपरोक्त कोड में है सही) ...

$album = $xmlDoc->getElementsByTagname('album')->item(0); 

यह त्रुटि ....

// Fatal error: Call to undefined method DOMNodeList::appendChild() in /Applications/XAMPP/xamppfiles/htdocs/admin/tests/DOMDoc.php on line 19 

DOMNodeList does not एक appendChild विधि है। डोमोडोड करता है।

संबंधित मुद्दे