我正在尝试创建一个将保存在xml文件中的列表。基本上它将是一个人的名字和描述;额外信息不是必填字段,当它为空时,我不想为它显示一行。所以我有一个脚本:
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","data/names.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var x=xmlDoc.getElementsByTagName("position");
for (i=0;i<x.length;i++)
{
document.write("<p class='text' style='font-size:");
document.write(x[i].getElementsByTagName("size")[0].childNodes[0].nodeValue);
document.write("px'>");
document.write(x[i].getElementsByTagName("person")[0].childNodes[0].nodeValue);
document.write("</p>");
if (x[i].getElementsByTagName("info")[0].childNodes[0].nodeValue!=""){
document.write("<p class='text' style='font-size:");
document.write(x[i].getElementsByTagName("info_size")[0].childNodes[0].nodeValue);
document.write("px'>");
document.write(x[i].getElementsByTagName("info")[0].childNodes[0].nodeValue);
document.write("</p>");
}
}
所以我的思维方式:
问题是当它到达空元素时,它会停止。它不会显示更多的位置。如果它不是空的,一切都运转良好。
以下是测试xml的示例:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<position>
<person>Empire Burlesque</person>
<size>10</size>
<info>USA</info>
<info_size>17</info_size>
</position>
<position>
<person>Hide your heart</person>
<size>11</size>
<info>UK</info>
<info_size>16</info_size>
</position>
<position>
<person>Greatest Hits</person>
<size>12</size>
<info>USA</info>
<info_size>15</info_size>
</position>
<position>
<person>Still got the blues</person>
<size>13</size>
<info>UK</info>
<info_size>14</info_size>
</position>
<person>test</person>
<size>17</size>
<info></info>
<info_size>10</info_size>
</position>
<position>
<person>tests</person>
<size>17</size>
<info></info>
<info_size>10</info_size>
</position>
<position>
<person>testa</person>
<size>17</size>
<info></info>
<info_size>10</info_size>
</position>
<position>
<person>testb</person>
<size>17</size>
<info></info>
<info_size>10</info_size>
</position>
</root>
这里有什么问题?