我在加載我的XML文檔時遇到了問題。 XML文件是PHP DOMDocument沒有返回或加載第一個元素
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE gallery [
<!ELEMENT gallery (category*)>
<!ELEMENT category (image*)>
<!ELEMENT image (title,comment,password,owner,rating)>
<!ELEMENT title ANY>
<!ELEMENT comment ANY>
<!ELEMENT password ANY>
<!ELEMENT owner ANY>
<!ELEMENT rating ANY>
<!ATTLIST category name CDATA #REQUIRED>
<!ATTLIST image date CDATA #REQUIRED>
]>
<gallery>
<category name="entertainment">
<image date="monday">
<title>1</title>
<comment>2</comment>
<password>3</password>
<owner>4</owner>
<rating>5</rating>
</image>
<image date="friday">
<title>11</title>
<comment>22</comment>
<password>33</password>
<owner>44</owner>
<rating>55</rating>
</image>
</category>
<category name="education">
</category>
<category name="relax">
</category>
<category name="sporting">
</category>
</gallery>
而我的PHP打印此XML
$doc = new DOMDocument();
$doc->validateOnParse = true;
$doc->load(ROOT_PATH."xml/data.xml");
if($doc->validate()) {
print_r($doc->saveHTML());
}
else echo 'Not Validated ';
,其結果是
2 3 4 5 22 33 44 55
順便說一句,我不明白爲什麼第一個元素是跳過。我有問題,這樣的
$category = $doc->getElementById('entertainment');
if (!$category){
echo 'not found';
}
返回選擇元素:
not found
你是在瀏覽器中做這個嗎?查看瀏覽器的_page source_查看XML結構。如果您剛剛看到'2 3 5 22 33 44 55',可能是因爲瀏覽器正在將XML解釋爲HTML標記。你有什麼工作將XML轉儲回屏幕:http://ideone.com/WtzeKM –
而'娛樂'沒有找到,因爲沒有'ID ='娛樂'元素,儘管你有'名稱= entertainment''。 –
感謝提示。但我的瀏覽器正確地在html中打印這個XML。女巫是1 2 3 4 5 11 22 33 44 55.而瀏覽器中的xml原始文件也是正確的。 – ianion