2015-10-13 72 views
0

我需要解析XML字符串。當我在下面的類中將字符串傳遞給pXML作爲$this->loadXML($this->xmlString)時,它將返回false。這可能是什麼原因?loadxml返回false:可能是什麼原因?

class MXML extends DOMDocument { 

     private $version,$encodingType,$rootNode,$videoParam,$encodingFormat,$audioParam,$xmlString; 

     /** 
     * Initilizes the DOM with version number and encoding 
     * @param $version 
     * @param $encoding 
     */ 
     public function __construct($version,$encoding) { 
      parent::__construct($version,$encoding); 
      $this->formatOutput = true; // Nicely formats output with indentation and extra space. 
     } 

     public function pXML($xml) { 
      $this->loadXML($this->xmlString); // returns FALSE 
      $parameters = $this->getElementsByTagName("Parameter"); 
      $advanced = $this->getElementsByTagName("Advanced"); 
      $preprocessing = $this->getElementsByTagName("Preprocessing"); 
     } 

     //.. write xml functions 
}; 

這是我如何調用pXML

$xml = new MXML(); 
$xml->pXML($result['XMLSettings']); 

XML

<?xml version="1.0" encoding="iso-8859-1"?> 
<Cutkompress-Parameters> 
    <Video-Params> 
    <EncodingFormat-MPEG-4Part2> 
     <Parameter> 
     <IQuant>7</IQuant> 
     <PQuant>7</PQuant> 
     <FramesToSkip>7</FramesToSkip> 
     <PBetweenI>7</PBetweenI> 
     <FrameRate>7</FrameRate> 
     <SearchWindow>7</SearchWindow> 
     </Parameter> 
     <Advanced> 
     <QuantType>7</QuantType> 
     <QPel>ON</QPel> 
     <MV>ON</MV> 
     <SceneChange>Detect Medium Change</SceneChange> 
     <VOL_Control_Parameters>ON</VOL_Control_Parameters> 
     </Advanced> 
     <Preprocessing> 
     <NoiseReduction>Detect Medium Change</NoiseReduction> 
     <SharpnessLevel>7</SharpnessLevel> 
     </Preprocessing> 
    </EncodingFormat-MPEG-4Part2> 
    </Video-Params> 
</Cutkompress-Parameters> 
+0

你的XML很可能已經壞了,是否足夠小以便分享? – hoppa

+0

@hoppa我已經分享了這個xml。 –

+0

你可以給你的問題添加'$ this-> loadXML'方法嗎? '$ this-> xmlString'是一個有效的xml字符串嗎? –

回答

3

你不能解析到的pXML傳遞的字符串,你試圖加載$this->xmlString這是沒有設置任何地方。你可能打算$this->loadXML($xml)

順便說一句,你應該給你一個警告。如果不是看看:How to get useful error messages in PHP?

相關問題