这是我的XML格式:-
<products>
<product_id value="nokia">
<tab_id value="3550">
<individual_born_from value="1990-03-20"/>
</tab_id>
<products_id>
<product_id value="samsung">
<tab_id value="3650">
<individual_born_from value="1990-03-20"/>
</tab_id>
<products_id>
</products>
我的代码:
<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_list() {
var elName = $('#select').val();
var xPath = '//product_id["' + elName + '" ' +
' < translate(tab_id/individual_born_from/@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="button" name="button" value="Search" onclick="get_list()">
<div id="result">
</div>
</body>
</html>
这是我的xpath:-
var xPath = '//product_id["' + elName + '" ' +
' < translate(tab_id/individual_born_from/@value,"-","")]/@value';
这里我想输出如下内容:-
如果用户在文本框中输入日期
如果文本框值小于xml individual_born_from="1990-03-20"
显示输出:—1,2
因为(1)是第一级<product_id>
attr值,(2)是第二级<prodcut_id>
attr值,这两个日期都大于用户在文本框中输入的…
如果可能的话,使用xpath的php代码也帮助我添加标签php由于
XPath表达式
//individual_born_from/(number(translate(@value,'-',''))
在XPath 2.0中有效,但在XPath 1.0中无效,这将"/"之后的内容限制为一个简单的步骤。
请试试:
var xPath = '//product_id["' + elName + '" ' +
' < translate(tab_id/individual_born_from/@value,"-","")]/@value';