Ben bazı XML veri alır ve bunu ayrıştırır, bundan çekin bilgi çeşitli bit gösteren bir php komut dosyası var. Son zamanlarda artık belli bir etiketi üzerinde esrarengiz başarısız kadar bu, 6 ay boyunca çalışma para cezası olmuştur.
XML bir dış kaynak (a konferans köprü) üretilen, bu yüzden nasıl inşa edildiğini üzerinde hiçbir kontrole sahip olduğunu. Ben bir online onaylayıcısı aracılığıyla xml koyduk ve hiçbir hata döndürdü. Ben başka bir konferans köprü bağlanmak ve aynı çıktıyı almak zaman kodu da çalışıyor.
Ben şimdiye kadar XMLReader sınıfını kullanarak ve SmipleXML geçiş çalıştı, ama ben verileri kullanarak SimpleXML nesnesini oluşturmak zaman başarısız olmuştur.
Burada ayrıştırma iken başarısız nerede snippet'idir:
<CDR_SUMMARY>
<FILE_VERSION>1001</FILE_VERSION>
<NAME>Conference Title Hidden</NAME>
<ID>10227</ID>
<STATUS_STR>Auto_termination,_everybody_quit</STATUS_STR>
<STATUS>4</STATUS>
<GMT_OFFSET>-4</GMT_OFFSET>
<START_TIME>2010-04-14T15:00:33</START_TIME>
<DURATION>
<HOUR>0</HOUR>
<MINUTE>39</MINUTE>
<SECOND>37</SECOND>
</DURATION>
<RESERVE_START_TIME>2010-04-14T15:00:33</RESERVE_START_TIME>
<RESERVE_DURATION>
<HOUR>12</HOUR>
<MINUTE>0</MINUTE>
<SECOND>0</SECOND>
</RESERVE_DURATION>
<MCU_FILE_NAME>c11</MCU_FILE_NAME>
<FILE_SAVED>0</FILE_SAVED>
<GMT_OFFSET_MINUTE>0</GMT_OFFSET_MINUTE>
</CDR_SUMMARY>
<SOUND>
etiketi açmadan önce başarısız okumak son biridir.
And this is my code: `public function processResponse($xml) { print "Processing List...";
$reader = new XMLReader($xml);
//verify xml
if($reader->xml($xml)) {
while($reader->read()) {
//$currentstring = $reader->readstring();
if($reader->name === "ACTION") {
//into meat of resposnse
while($reader->read()) {
//print "Looping...";
//$currentstring = $reader->readInnerXML();
//print $currentstring;
if($reader->nodeType == XMLReader::ELEMENT) {
if($reader->name === "ID") {
$this->conferenceIDs[$this->counter] = $reader->readString();
print "<BR>Conf ID found: ".$this->counter." ID: ".$this->conferenceIDs[$this->counter];
$this->counter += 1;
}
else if($reader->name === "START_TIME") {
//conference start time.
print "<BR>Start Time Found! ";
$this->conferenceStarts[$this->counter-1] = $reader->readString();
}
else if($reader->name === "NAME") {
print "<BR> Name Found!";
$this->conferenceNames[$this->counter] = $reader->readString();
}
else if($reader->name === "MCU_FILE_NAME") {
print "<BR> MCU_FILE_NAME Found!";
//print $this->counter." File Name: ".$reader->readstring()."<BR>";
} else if($reader->name === "RESERVE_START_TIME") {
print "<BR> RESERVE_START_TIME Found!";
} else if($reader->name === "FILE_VERSION") {
print "<BR> FILE_VERSION Found!";
} else if($reader->name === "STATUS_STR") {
print "<BR> STATUS_STR Found!";
} else if($reader->name === "STATUS") {
print "<BR> STATUS Found!";
} else if($reader->name === "GMT_OFFSET") {
print "<BR> GMT_OFFSET Found!";
} else if($reader->name === "DURATION") {
print "<BR> DURATION Found!";
} else if($reader->name === "RESERVE_START_TIME") {
print "<BR> RESERVE_START_TIME Found!";
} else if($reader->name === "RESERVE_DURATION") {
print "<BR> RESERVE_DURATION Found!";
} else if($reader->name === "FILE_SAVED") {
print "<BR> FILE_SAVED Found!";
} else if($reader->name === "GMT_OFFSET_MINUTE") {
print "<BR> GMT_OFFSET_MINUTE Found!";
} else if($reader->name === "HOUR") {
print "<BR> HOUR Found!";
} else if($reader->name === "MINUTE") {
print "<BR> MINUTE Found!";
} else if($reader->name === "SECOND") {
print "<BR> SECOND Found!";
}
}else if($reader->nodeType == XMLReader::END_ELEMENT) {
print "Close Element".$reader->name;
}
}
print "End Action Loop";
}
}
}
else {
print "Error reading response: Bad XML returned";
}
}`
Herkes bu başarısızlık neden olabilir ne herhangi bir fikir var mı? kod incelikle çıkar ve benim çıktı "End Eylem Döngü" mesajı göreceksiniz. Sadece kendiliğinden döngü çıkar gibi.