如何在一系列值中查找XML属性

时间:2013-08-21 05:17:28

标签: jquery xml parsing

我正在尝试查找具有一系列值中属性的XML元素。

我可以使用$(xml).find("line[l=855]").text()选择具有EXACT属性值的XML元素,即:l =“855”,但我希望能够通过给出一个范围来找到该元素值,例如850 -860,这样它将找到855并返回该元素的值。

以下是我正在使用的示例:

$(document).ready(function () {
    var xml = '<par><line baseline="849" l="855" t="815" r="1042" b="848"><formatting lang="EnglishUnitedStates" ff="Courier New" fs="9." spacing="-6" scaling="876"><charParams l="855" t="816" r="873" b="845" wordStart="true" wordFromDictionary="false" wordNormal="false" wordNumeric="true" wordIdentifier="false" wordPenalty="0" meanStrokeWidth="40" charConfidence="59" serifProbability="255">0</charParams></formatting></line></par>';
    var ocrResult = $(xml).find("line[l=855]").text();
    $("#result").append(ocrResult);
});

JSFiddle:http://jsfiddle.net/Dgras/2/

1 个答案:

答案 0 :(得分:0)

为什么不为此使用过滤器:

$(document).ready(function () {
    var xml = '<par><line baseline="849" l="855" t="815" r="1042" b="848"><formatting lang="EnglishUnitedStates" ff="Courier New" fs="9." spacing="-6" scaling="876"><charParams l="855" t="816" r="873" b="845" wordStart="true" wordFromDictionary="false" wordNormal="false" wordNumeric="true" wordIdentifier="false" wordPenalty="0" meanStrokeWidth="40" charConfidence="59" serifProbability="255">0</charParams></formatting></line></par>';

    var range = [850, 860];
    var ocrResult = $(xml).find("line").filter(function(){ return parseInt($(this).attr('l')) >= range[0] && parseInt($(this).attr('l')) <= range[1] }).text();
    $("#result").append(ocrResult);
});

这是更新的小提琴:http://jsfiddle.net/Dgras/3/