在“跨记录”中查找XML属性的最大值
Find the Max Value for an XML Attribute, Across Records
使用JQuery&SPServices,我收到的XML类似于以下内容:
<?xml version="1.0"?>
<soap:Envelope xmlns: . . .> <soap:Body>
<GetListItemsResponse xmlns=" ... ">
<GetListItemsResult>
<listitems xmlns:s=" ... >
<rs:data ItemCount="4">
<z:row ows_CtID="5" ows_ID="1" ows_Ct="GR" />
<z:row ows_CtID="9" ows_ID="4" ows_Ct="PC" />
<z:row ows_CtID="2" ows_ID="5" ows_Ct="G" />
<z:row ows_CtID="3" ows_ID="7" ows_Ct="O55" />
</rs:data>
</listitems>
</GetListItemsResult>
</GetListItemsResponse>
</soap:Body></soap:Envelope>
(当然,我得到了更多;为了简单地展示这个概念,这个已经被缩减了。)
您将注意到,排序是根据ows_ID
进行的,并且ows_ID
和ows_CtID
的值都有间隙。
我想得到min&ows_CtID;
的最大值我想要"2
"&换句话说就是"9,
"。
使用JavaScript、JQuery(可能还有SPServices),我如何获得XML中特定属性的最小值和最大值(本例中为ows_CtID,
)?
您需要遍历所有z:row,并为min和max保留一个变量,只有在找到较大值或较小值时才更新它们。。。例如,将以下内容放入SPServices的completefunc函数中:
var min = null,
max = null;
$(xData.responseXML).SPFilterNode("z:row").each(function() {
var $this = $(this),
val = parseInt( $this.attr("ows_CtID") );
if (min === null) {
min = max = val;
}
if (val < min) {
min = val;
}
if (val > max) {
max = val;
}
});
alert("Min: " + min + " | Max: " + max);
如果您的字段(在本例中为ows_CtID)不是整数,则将上面的内容更改为不使用"parseInt"。。。如果它是一个带小数的数字,请改为parseFloat。
保罗。
相关文章:
- 如何使用javascript查找从xml中检索到的元素数量
- 使用javascript查找xml属性值
- XML查询日期范围查找
- 查找嵌套 xml 节点的更简单方法
- 在 XML 文件中查找标记
- 如何使用 jquery 查找名称中带有“:”的 xml 元素
- 仅使用 JavaScript 查找具有给定属性值的 xml 元素的值
- 在节点.js中按类型和 ID 查找 XML 元素
- 如何在jquery中使用Findexpresstion来查找确切的xml节点
- 在“跨记录”中查找XML属性的最大值
- 如何在JQuery中查找和替换xml节点值
- 使用jquery查找xml中的根节点标记
- 查找非封闭的XML节点(Yahoo天气)
- 如何使用jQuery在变量中查找无效的未闭合XML标记
- js查找具有另一个属性的xml属性
- 使用E4X在XML列表中查找不同的值
- 尝试使用Javascript来查找文本并将其链接到页面-也可能使用XML
- 使用变量名查找XML属性值
- 如何使用Javascript在XML中查找特定的标记
- 如何显示XML数据并查找用户单击了哪个数据