for循环,直到xml属性不为null.从最后一行开始javascript
for loop until xml attribute is not null. start on last row - javascript
所以,我有ff.xml,xmlSemesters。
<Semesters>
<Row SemesterID="60" SequentialOrderNumber="1" />
<Row SemesterID="61" SequentialOrderNumber="2" />
<Row SemesterID="54" SequentialOrderNumber="3" />
<Row SemesterID="" SequentialOrderNumber="4" />
<Row SemesterID="" SequentialOrderNumber="5" />
</Semesters>
我希望能够选择具有SemesterID值的最后一个节点(在本例中为第三个节点)。行数是动态的,具有semesterID的最后一个节点会有所不同,sequencialordernumber属性只是根据xml的节点数而增加。
因此,目前,我选择具有semesterID值的最后一个节点的方法是:
var xmlLength = xmlSemesters.getElementsByTagName("Row").length;
var firstRow = xmlSemesters.selectSingleNode("//Row[@SemesterID!='']");
var lastRow = xmlSemesters.selectSingleNode("//Row[@SequentialOrderNumber<='"+xmlLength+"' and @SemesterID!='' and @SequentialOrderNumber>'"+firstRow.getAttribute("SequentialOrderNumber")+"']");
所以我有一个firstRow,它将获得具有semesterID值的第一个节点。然后我有一个lastRow,它应该得到具有semesterID值的最后一个节点。但我的代码不是这样的,它得到了第二个节点。所以我知道这是错误的。
有没有其他方法可以让我获得具有semesterID值的最后一个节点?
我正在考虑循环xml,就像从等于xmlLength的节点开始一样。因此,在这种情况下为5,因此在它检测到semesterID为null之后,它将再次循环并将sequencialordernumber属性减去1,直到它到达具有semesterID值的节点。
我只是不知道如何把它写进代码里。或者还有其他办法吗?
语言是javascript。
谢谢!
var xmlRow = xmlSemesters.getElementsByTagName("Row"); //get all the Row element here
//since we are going to start at the end, we have to get the length
// of xmlRow -1 because it starts with zero..if we have 3 Row element for example
// it has an index of 0,1,2 and not 1,2,3
var len = xmlRow.length - 1; // our lenght is 4 in this case
// Using for loop, we can start our loop from the end
// notice that we start our loop from len which is equals to 4
// and decrement its value using i--
for(var i = len; i > 0; i--) {
if(xmlRow[i].getAttribute("SemesterID") != "") {
//it's the last so...
alert("the last node is "+xmlRow[i]);
//...we have to break the loop.
break;
}
}
相关文章:
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 在JavaScript中重构上个月的第一天和最后一天的代码(node.js)
- 如何使用JavaScript forloop从JSON中删除最后一个逗号
- Javascript:删除冒号的最后一个字符
- Javascript/jQuery替换tamil语言输入框中的最后一个单词
- 使用javascript替换字符串中除第一个和最后一个之外的所有字符
- Javascript匹配以从URL中删除部分文件名-替换最后一次出现的内容
- 使用VBScript或Javascript从文本框(文本区域)中删除最后一行空/空行
- 从数组JavaScript中删除并返回最后n个项的最快方法
- jQuery/Javascript>on单击将文本放置在最后一个已知的光标位置
- 如何使用javascript获取最后一个全天时间戳
- 在Javascript中截断一个字符串,混淆了最后两个测试字符串
- JavaScript只有在最后一次被调用时才运行函数
- ..的Javascript..循环中的对象没有在最后一个属性上运行
- JavaScript 不会替换字符串的最后一个符号
- JavaScript,数组和函数 - 只有数组的最后一个元素有效
- Javascript 切掉最后一个字符,如果有 2 个
- 在 JavaScript 中使用最后两个数字获取年份
- Javascript 正则表达式:获取最后两个段,用点除
- 在 Javascript 中获取字符串中的最后一个符号时值错误