Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用XML文件中的JavaScript按id搜索book并输出所有子child值_Javascript_Xml - Fatal编程技术网

如何使用XML文件中的JavaScript按id搜索book并输出所有子child值

如何使用XML文件中的JavaScript按id搜索book并输出所有子child值,javascript,xml,Javascript,Xml,我想按id搜索图书并给出 标题作者年价格值的输出 像 输出: title: XQuery Kick Start<br> author: James McGovern<br> author: Per Bothner<br> author: Kurt Cagle<br> author: James Linn<br> author: Vaidyanathan Nagarajan<br> year: 2003<br> p

我想按id搜索图书并给出
标题作者年价格值的输出 像

输出:

title: XQuery Kick Start<br>
author: James McGovern<br>
author: Per Bothner<br>
author: Kurt Cagle<br>
author: James Linn<br>
author: Vaidyanathan Nagarajan<br>
year: 2003<br>
price: 49.99<br>
标题:XQuery启动
作者:詹姆斯·麦戈文
作者:Per Bothner
作者:库尔特·卡格尔
作者:詹姆斯·林恩
作者:Vaidyanathan Nagarajan
年份:2003年
价格:49.99
xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book id="1">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book id="2">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book id="3">
    <title lang="un">XQuery Kick Start</title>
    <author>James McGovern</author>
    <author>Per Bothner</author>
    <author>Kurt Cagle</author>
    <author>James Linn</author>
    <author>Vaidyanathan Nagarajan</author>
    <year>2003</year>
    <price>49.99</price>
  </book>
  <book id="4">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

日常意大利语
吉娅达·德·劳伦蒂斯
2005
30
哈利·波特
J K.罗琳
2005
29.99
XQuery启动
詹姆斯·麦戈文
伯特纳
库尔特·卡格尔
詹姆斯·林恩
瓦迪亚纳坦·纳加拉扬
2003
49.99
学习XML
埃里克·T·雷
2003
39.95
用于解析字符串,然后使用
getElementById
querySelector

var parser = new DOMParser();
var doc = parser.parseFromString( xml, "application/xml" );
var element = doc.getElementById( "1" );
console.log( element.querySelector( "title" ).innerHTML  );
演示

var-xml=`
日常意大利语
吉娅达·德·劳伦蒂斯
2005
30
哈利·波特
J K.罗琳
2005
29.99
XQuery启动
詹姆斯·麦戈文
伯特纳
库尔特·卡格尔
詹姆斯·林恩
瓦迪亚纳坦·纳加拉扬
2003
49.99
学习XML
埃里克·T·雷
2003
39.95
`;
var parser=新的DOMParser();
var doc=parser.parseFromString(xml,“应用程序/xml”);
var元素=doc.getElementById(“1”);
log(element.querySelector(“title”).innerHTML)您需要使用将字符串转换为XML。
之后,您可以在xml中查看本书的内容:

xmlDoc.getElementById(id)
然后你在书里面:

book.getElementsByTagName(tagName)
所有的验证都取决于你。样本:
var text='Daily Italianada De Laurentiis200530.00Harry PotterJ K.Rowling200529.99XQuery Kick StartJames McGovernPer BothnerKurt CagleJames LinnVaidyanathan Nagarajan200349.99Learning XMLErik T.Ray200339.95';
parser=新的DOMParser();
var xmlDoc=parser.parseFromString(text,“text/xml”);
功能搜索(id){
var book=xmlDoc.getElementById(id);
var title=book.getElementsByTagName(“title”)[0].innerHTML;
var year=book.getElementsByTagName(“年”)[0].innerHTML;
var price=book.getElementsByTagName(“价格”)[0].innerHTML;
var authorList=book.getElementsByTagName(“作者”);
var=[];
Array.prototype.slice.call(authorList).forEach(函数(val){
push(val.innerHTML);
});
var obj={
身份证件
标题
年,
价格,
作者:,
}
控制台日志(obj);
}

搜查(3)欢迎来到Stackoverflow,您尝试了什么?(我们这里不为您编写代码)我建议您使用xml2js包。我很累,但无法输出您尝试的代码:)此外,这里关于DOMParser的答案假设您在web浏览器中使用javascript。
book.getElementsByTagName(tagName)