空xml元素停止代码生成

时间:2014-10-14 14:33:22

标签: javascript html xml

我正在尝试创建一个将保存在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>");
    }
}

所以我的思维方式:

  1. 记下指定大小的人名
  2. 检查额外信息是否为空,
  3. 如果它不为空,请使用指定大小的额外信息写第二行
  4. 如果为空,请不要做任何事情并重复下一项。
  5. 问题是当它到达空元素时,它会停止。它不会显示更多的位置。如果它不是空的,一切都运转良好。

    以下是测试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>
    

    这里有什么问题?

0 个答案:

没有答案