這是我的xml文件等於不工作: -小於,大於,預期中的XPath
<products>
<product_id value="1">
<tab_id value="351">
<tab_name value="test1"/>
<dist_map value="5"/>
</tab_id>
</product_id>
<product_id value="2">
<tab_id value="352">
<tab_name value="test2"/>
<dist_map value="3"/>
</tab_id>
</product_id>
</products>
這是我的XPath: -
var xPath = '//*[local-name() = "'+elName+'" and '+value+' and '+ value +' '+ls
+' contains(concat(@value,","),"'+value+',")and '+
' translate(@value," -:","")]'+'/../../@value';
我有三個按鈕和兩個文本框,代碼是:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
var xml;
$.get(
"xml_converted.xml",
null,
function (data) {
xml = data;
},
"xml"
);
function get_node(ls)
{
var elName = $('#select').val();
var value = $('#value').val();
var xPath = '//*[local-name() = "'+elName+'" and '+value+' and '+ value +' '+ls
+' contains(concat(@value,","),"'+value+',")and '+
' translate(@value," -:","")]'+'/../../@value';
var iterator = xml.evaluate(xPath, xml.documentElement, null,
XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
var thisNode = iterator.iterateNext();
var str = '';
while (thisNode) {
if (str) {
str += ', ';
}
str += thisNode.textContent;
thisNode = iterator.iterateNext();
}
$("#result").text(str);
}
</script>
</head>
<body>
<input type="text" id="select">
<input type="text" id="value">
<input type="button" name="button" value="Less than" onclick="get_node('<')"></input>
<input type="button" name="button" value="Grater than" onclick="get_node('>')"></input>
<input type="button" name="button" value="Equal" onclick="get_node('=')"></input>
<div id="result">
</div>
</body>
</html>
與此代碼O/p是: -
我在第二個文本框3
(其dist_map屬性值)在第一個文本框dist_map
輸入
然後在低於按鈕其沒有給出任何輸出
如果點擊磨碎器-比按鈕,然後其顯示兩個1,2
(其product_id屬性值)
這是不是完美的o/p。
這裏O/P僅1
(其PRODUCT_ID屬性值)bcoz 3少於5
如果點擊等於按鈕,然後工作完美2
(其PRODUCT_ID屬性值)b'coz兩個文本框的值是在比賽xml文件
這裏只與我的XPath或參數傳遞按鈕類似的問題(<
,>
)
請我這個問題,並幫助解決我這個...
感謝
嗨,我注意到你已經有jQuery包括在內,你會對一個解決方案感興趣嗎?這個解決方案爲了用查詢選擇器而不是xpath來處理XML? – 2013-03-16 11:52:21
如果可能在xpath中首先給他們優先... – 2013-03-16 13:03:38