gpt4 book ai didi

javascript - 在xpath中获取特定数据

转载 作者:行者123 更新时间:2023-11-29 19:11:42 25 4
gpt4 key购买 nike

我需要你的帮助,首先我从代码开始:

bookmod.xml

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>

<book category="COOKING">
<insystem>
<t>asdgas</t>
<b>asdgas</b>
</insystem>
<data>
<Data name="title">Everyday Italian</Data>
<Data name="author">Giada De Laurentiis</Data>
<Data name="year">2005</Data>
<Data name="price">30.00</Data>
</data>
</book>

<book category="CHILDREN">
<insystem>
<t>asdgas</t>
<b>asdgas</b>
</insystem>
<data>

<Data name="title">Potter Potter</Data>
<Data name="author">Giada De Laurentiis</Data>
<Data name="year">2003</Data>
<Data name="price">30.00</Data>
</data>
</book>

<book category="WEB">
<insystem>
<t>asdgas</t>
<b>asdgas</b>
</insystem>
<data>

<Data name="title">asdgasd Potter</Data>
<Data name="author">Giada De Laurentiis</Data>
<Data name="year">2005</Data>
<Data name="price">30.00</Data>
</data>
</book>

<book category="WEB">
<insystem>
<t>asdgas</t>
<b>asdgas</b>
</insystem>
<data>

<Data name="title">web book</Data>
<Data name="author">Giada De Laurentiis</Data>
<Data name="year">2005</Data>
<Data name="price">30.00</Data>
</data>
</book>

</bookstore>

索引.php

<!DOCTYPE html>
<html>
<body>
<script>

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",dname,false);
try {xhttp.responseType="msxml-document"} catch(err) {} // Helping IE
xhttp.send("");
return xhttp;
}

var x=loadXMLDoc("bookmod.xml");
var xml=x.responseXML;
path="/bookstore/book/data/Data";

// code for IE
if (window.ActiveXObject || xhttp.responseType=="msxml-document")
{
xml.setProperty("SelectionLanguage","XPath");
nodes=xml.selectNodes(path);
for (i=0;i<nodes.length;i++)
{
document.write(nodes[i].childNodes[0].nodeValue);
document.write("<br>");
}
}

// code for Chrome, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
var result=nodes.iterateNext();

while (result)
{
document.write(result.childNodes[0].nodeValue);
document.write("<br>");
result=nodes.iterateNext();
}
}

</script>
</body>
</html>

在路径中我也尝试:/bookstore/book/data[Data=2005]/Data[@name='year']

还有许多其他的...

这基本上意味着 XML 文件非常大,我只需要找到那些 <data name="year"> == 2005

我尝试了很多方法和生成器,但仍然无法处理:(

如果能输入标题和作者就更好了。


编辑:

<book xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

我不知道为什么,但它不起作用

你知道解决这个问题的方法吗?当我删除 xmlns="..... 一切正常但我有它。

最佳答案

以下 XPath 将选择 2005 年以来的所有 book 元素:

/bookstore/book[data/Data[@name='year' and .=2005]]

关于javascript - 在xpath中获取特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38362812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com