2011-04-08 14 views
7

कहो मिल मैं इस निम्न XML संरचना है:SimpleXML नोड मूल्य

<?xml version="1.0" encoding="UTF-8"?> 
<main> 
    <parent> 
     <child1>some value</child1> 
     <child2>another value</child2> 
    </parent> 
</main> 

मैं एक्सएमएल के एक चर बना दिया है और अब मैं child1 के मूल्यों को प्राप्त करना चाहते हैं, तो मैं SimpleXML का उपयोग करें:

$xml = new SimpleXMLElement($xml); 
$this->xmlcode = (string) $xml->main->parent->child1; 

लेकिन मुझे यह संदेश मिलता है: नोटिस: लाइन x

पर गैर-ऑब्जेक्ट की संपत्ति प्राप्त करने का प्रयास कर रहा है मैंने इसे $ xml-> parent-> child1 के साथ भी कोशिश की, लेकिन कोई सफलता नहीं।

कोई भी ??

+7

पाया जा सकता है * आह * यह कभी सबसे लगातार त्रुटियों में से एक होना चाहिए। जब आप एक XML दस्तावेज़ को SimpleXmlElement में लोड करते हैं, तो रूट नोड SimpleXmlElement है, उदा। '$ xml =

'। – Gordon

+1

स्पष्टीकरण गॉर्डन के लिए धन्यवाद। – priktop

उत्तर

22
$xml = new SimpleXMLElement($xml); 
$this->xmlcode = (string) $xml->parent[0]->child1; 
+0

धन्यवाद, इसे मिला :) – priktop

+1

उदाहरण के लिए (फ्लोट) प्रकार (स्ट्रिंग) जोड़कर मेरे लिए समस्या हल हो गई। – JelleP

2

SimpleXMLElement के लिए php के साथ XPath का उपयोग करने का एक अच्छा उदाहरण यहाँ http://www.php.net/manual/en/class.simplexmlelement.php#95229

// Find the topmost element of the domDocument 
$xpath = new DOMXPath($xml); 
$child1 = $xpath->evaluate('/main/parent/child1')->item(0); 
+3

SimpleXml XPath क्वेरी कर सकता है। ऐसा करने के लिए डोम में कनवर्ट करने की कोई आवश्यकता नहीं है। मूल्यांकन का उपयोग करने का एकमात्र लाभ तब होता है जब टाइप किए गए परिणाम प्राप्त होते हैं, जो आपका उदाहरण स्पष्ट रूप से नहीं करता है। – Gordon

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