for循环直到xml属性不为null。从最后一行开始-javascript

for循环直到xml属性不为null。从最后一行开始-javascript,javascript,xml,loops,nodes,Javascript,Xml,Loops,Nodes,所以,我有ff。xml,xml学期 <Semesters> <Row SemesterID="60" SequentialOrderNumber="1" /> <Row SemesterID="61" SequentialOrderNumber="2" /> <Row SemesterID="54" SequentialOrderNumber="3" /> <Row SemesterID="" Sequenti

所以,我有ff。xml,xml学期

<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的节点是不同的,sequentialordernumber属性只是根据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")+"']");
因此,我有一个第一行,它将获得具有semesterID值的第一个节点。然后我有一个lastRow,它应该得到最后一个具有semesterID值的节点。但我的代码不是这样的,它得到了第二个节点。所以我知道这是错误的

是否有其他方法可以获得最后一个具有semesterID值的节点

我正在考虑循环xml,就像从等于xmlLength的节点开始一样。在本例中是5,在检测到semesterID为null后,它将再次循环并将sequentialordernumber属性减去1,直到它到达一个具有semesterID值的节点

我只是不知道怎么把它写进代码里。或者还有别的办法吗

语言是javascript

谢谢大家!

var xmlRow=xmlsemests.getElementsByTagNameRow//在这里获取所有行元素 //因为我们要从最后开始,所以我们必须得到长度 //因为它以零开始。例如,如果我们有3行元素 //它的索引为0,1,2,而不是1,2,3 var len=xmlRow.length-1;//在这种情况下,我们的长度是4 //使用for循环,我们可以从末尾开始循环 //注意,我们从len开始循环,len等于4 //并使用i减小其值- forvar i=len;i>0;我-{ ifxmlRow[i].GetAttributeMesterId!={ //这是最后一次,所以。。。 警报最后一个节点是+xmlRow[i]; //…我们必须打破这个循环。 打破 } }
很好的回答,请添加一些描述来帮助OP理解它,这样他就不会只按Ctrl+C,Ctrl+V而不按clueI理解代码了。非常感谢。