[英]parsing a xml file using javascript does not givethe required result
I am trying to parse a XML-file using java-script. 我正在尝试使用Java脚本解析XML文件。 Actually, I read many tutorials to find out how to parse the data from the XML-file correctly, and I found that I am on the right way. 实际上,我阅读了很多教程,以了解如何正确地解析XML文件中的数据,并且发现自己的方法正确。 Concerning the loadXMLDoc(dname) function, I passed the path of the XML-file to loadXMLDoc function as follows: 关于loadXMLDoc(dname)函数,我将XML文件的路径传递给loadXMLDoc函数,如下所示:
var dname = "D:\files\files\Schriftsteller.xml";
function loadXMLDoc(dname)
But still the parsing does not give me the desired result, I want to display the name in the following tag 但是解析仍然不能给我想要的结果,我想在下面的标签中显示名称
<name>Jane Austin</name>
but the web browser does not display it, I am using Chrome. 但网络浏览器未显示它,我正在使用Chrome。 Please, (1) Let me know where my mistake is? 请(1)让我知道我的错误在哪里? (2)what extension the parser file should be saved under(.HTML/.js) (2)解析器文件应以什么扩展名保存在(.HTML / .js)下
Please find below the XML-file and the java-script file 请在下面找到XML文件和Java脚本文件
XML file: XML档案:
<?xml version="1.0" ?>
<Schriftsteller>
<Englischsprache>
<Dichtung>
<fueller>
<name>Jane Austin</name>
<name>Rex Stout</name>
<name>Dashiell Hammett</name>
</fueller>
</Dichtung>
</Englischsprache>
</Schriftsteller>
JavaScript File.html(Parser): JavaScript File.html(Parser):
<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<link rel="stylesheet" href="readXML.css" type="text/css">
<title>Read First Child</title>
<!-- <xml ID="Schriftsteller" SRC="D:\files\files\Schriftsteller.xml"></xml> -->
<script language="JavaScript">
var dname = "D:\files\files\Schriftsteller.xml";
function loadXMLDoc(dname)
{
var xmlDoc;
if (window.XMLHttpRequest)
{
xmlDoc=new window.XMLHttpRequest();
xmlDoc.open("GET",dname,false);
xmlDoc.send();
return xmlDoc.responseXML;
}
// IE 5 and IE 6
else if (ActiveXObject("Microsoft.XMLDOM"))
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load(dname);
return xmlDoc;
}
alert("Error loading document!");
return null;
}
function findWriter()
{
var schriftstellerKnoten, SpracheKnoten;
var FuellerKnoten, DichtungKnoten, Anzeige;
myXML = document.all(dname).XMLDocumentalert(dname);
SchriftstellerKnoten = myXML.documentElement;
SpracheKnoten = SchriftstellerKnoten.firstChild;
DichtungKnoten = SpracheKnoten.firstChild;
FuellerKnoten = DichtungKnoten.firstChild;
NameNode = FuellerKnoten.firstChild;
Anzeige = NameNode.firstChild.nodeValue;
document.write(Anzeige);
}
</script>
</head>
<body onload="loadXMLDoc(dname)">
<span ID="blueBack">Read firstChild</span>
<div>
<form name="show">
<input type=text name="me">
<input type="button" value="Display Writer"
onClick="findWriter()">
</form>
</div>
</body>
First your XML-Document has to be well-formed. 首先,您的XML文档必须格式正确。
So for every tag you open add another tag to close it (like you do with the name-tag). 因此,对于您打开的每个标签,请添加另一个标签以将其关闭(就像对名称标签所做的那样)。 The closing tag has to be same as the opening, except for a /
in the beginning 结束标记必须与开头相同,但开头必须加上/
Also you have to watch the case (well-formed XML is case-sensitive). 您还必须注意大小写(格式正确的XML区分大小写)。 The tag 标签
<EnglischSprache>
is different from <Englischsprache>
<EnglischSprache>
与<Englischsprache>
不同
Try it like this: 像这样尝试:
<?xml version="1.0"?>
<Schriftsteller>
<EnglischSprache>
<Dichtung>
<fueller>
<name>Jane Austin</name>
<name>Rex Stout</name>
<name>Dashiell Hammett</name>
</fueller>
</Dichtung>
</EnglischSprache>
</Schriftsteller>
Then in the JS-File, maybe you should try calling the function loadXMLDoc. 然后,在JS文件中,也许您应该尝试调用函数loadXMLDoc。
Looks like you're just defining it. 看起来您只是在定义它。
Try it like this: 像这样尝试:
<body onload="loadXMLDoc(dname)">
Better now? 现在好多了?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.