Html 若输入的值和xml值相同,那个么显示xml文件的第一个元素
这是我的xml示例:-Html 若输入的值和xml值相同,那个么显示xml文件的第一个元素,html,xml,xpath,Html,Xml,Xpath,这是我的xml示例:- <products> <product_id value="1"> <tab_id value="351"> <date value="30-09-1989" /> </tab_id> </product_id> <product_id value="2"> <tab_id valu
<products>
<product_id value="1">
<tab_id value="351">
<date value="30-09-1989" />
</tab_id>
</product_id>
<product_id value="2">
<tab_id value="352">
<date value="03-03-1990" />
</tab_id>
</product_id>
</products>
这是我试过的:-
<html>
<head>
<title>Less,Grater,Equal</title>
<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_list()
{
var ename = $('#select').val();
var xPath = '//*["' + ename + '" = ' +
' //date/@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>
<body>
<input type="text" id="select">
<input type="button" value="search">
<div id="result"></div>
</body>
</head>
</html>
少、多、等
var-xml;
美元(
“xml_Converted.xml”,
无效的
功能(数据){
xml=数据;
},
“xml”
);
函数get_list()
{
var ename=$('#select').val();
变量xPath='/*['+ename+''='+
'///date/@value'+']/../../@value';
var iterator=xml.evaluate(xPath,xml.documentElement,null,
XPathResult.UNORDERED\节点\迭代器\类型,null);
var thisNode=iterator.iterateNext();
var-str='';
while(此节点){
如果(str){
str+=',';
}
str+=thisNode.textContent;
thisNode=iterator.iterateNext();
}
$(“#结果”).text(str);
}
这里我想说明o/p,如果用户在文本框中输入日期,那么它在xml树上的匹配,它的soud返回xml树的第一个元素属性值(产品id值)o/p为1
更改此项:
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();
}
为此:
var node = xml.evaluate(xPath, xml.documentElement, null,
XPathResult.FIRST_ORDERED_NODE_TYPE, null);
var str = node.singleNodeValue ? node.singleNodeValue.textContent : '';
应该这样做。您的XPath有一些问题。我认为应该是:
var XPath='/*['+ename+'=date/@value]//../../@value';
如果两个日期都相同,那么这两个日期都相同,那么显示1,2我不确定您在问什么。您是说它在显示“1,2”,还是说您想显示“1,2”"? 如果您想显示“1,2”,那么您可以恢复到原始代码(但修复XPath)。用户输入此属性的任何属性值
,如10068 hows set for this XPath,我想检查小于日期的条件