Javascript 双XML DOM getAttribute()方法+;条件
我有一个XML文件,我想使用JavaScript从中提取一些属性,但我只希望它返回来自父节点的属性与我在以前的脚本中作为HTML页面的一部分设置的全局变量匹配时出现的属性 下面是我的XML文件Javascript 双XML DOM getAttribute()方法+;条件,javascript,html,xml,dom,Javascript,Html,Xml,Dom,我有一个XML文件,我想使用JavaScript从中提取一些属性,但我只希望它返回来自父节点的属性与我在以前的脚本中作为HTML页面的一部分设置的全局变量匹配时出现的属性 下面是我的XML文件 <?xml version="1.0" encoding="UTF-8"?> <directory name="weeks"> <directory name="week42"> <file name="one.pdf"/> <file name="t
<?xml version="1.0" encoding="UTF-8"?>
<directory name="weeks">
<directory name="week42">
<file name="one.pdf"/>
<file name="two.pdf"/>
<file name="three.pdf"/>
</directory>
<directory name="week43">
<file name="four.pdf"/>
<file name="five.pdf"/>
</directory>
</directory>
--
非常感谢您的建议。
谢谢
梯子我们开始
<!DOCTYPE html>
<html>
<body>
<script>
text = "<directory name='weeks'><directory name='week42'>";
text = text + "<file name='one.pdf'/><file name='two.pdf'/>";
text = text + "<file name='three.pdf'/></directory>";
text = text + "<directory name='week43'><file name='four.pdf'/>";
text = text + "<file name='five.pdf'/></directory></directory>";
if (window.DOMParser) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(text, "text/xml");
} else // Internet Explorer
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(text);
}
var x = xmlDoc.getElementsByTagName('directory');
var constant = 'week43';
for (var i =0; i < x.length; i++) {
var attrs = x[i].attributes;
var k = attrs.getNamedItem("name").nodeValue;
if (constant == k) {
if (x[i].childNodes) {
document.write(k);
for ( var j = 0; j < x[i].childNodes.length; j++) {
var detail = x[i].childNodes[j];
var lattr = detail.attributes.getNamedItem("name").nodeValue;
document.write("<br>");
document.write(lattr);
}
}
}
}
</script>
</body>
</html>
text=“”;
text=text+“”;
text=text+“”;
text=text+“”;
text=text+“”;
if(window.DOMParser){
parser=新的DOMParser();
xmlDoc=parser.parseFromString(text,“text/xml”);
}else//internetexplorer
{
xmlDoc=新的ActiveXObject(“Microsoft.XMLDOM”);
xmlDoc.async=false;
loadXML(文本);
}
var x=xmlDoc.getElementsByTagName('directory');
var常量=‘week43’;
对于(变量i=0;i”);
文件编写(lattr);
}
}
}
}
输出将是
第43周
four.pdf
5.pdf
function loadXMLDoc(weekslinks)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET","weeksdirlist.xml",false);
xhttp.send();
return xhttp.responseXML;
}
xmlDoc=loadXMLDoc("weeksdirlist.xml");
x=xmlDoc.getElementsByTagName("file");
for (i=0;i<x.length;i++)
{
var filename = x[i].getAttributeNode("name").nodeValue; //the nodefile is the filename
if (filename != "Thumbs.db")
{
document.write(filename);
}
}
one.pdf
two.pdf
three.pdf
<!DOCTYPE html>
<html>
<body>
<script>
text = "<directory name='weeks'><directory name='week42'>";
text = text + "<file name='one.pdf'/><file name='two.pdf'/>";
text = text + "<file name='three.pdf'/></directory>";
text = text + "<directory name='week43'><file name='four.pdf'/>";
text = text + "<file name='five.pdf'/></directory></directory>";
if (window.DOMParser) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(text, "text/xml");
} else // Internet Explorer
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(text);
}
var x = xmlDoc.getElementsByTagName('directory');
var constant = 'week43';
for (var i =0; i < x.length; i++) {
var attrs = x[i].attributes;
var k = attrs.getNamedItem("name").nodeValue;
if (constant == k) {
if (x[i].childNodes) {
document.write(k);
for ( var j = 0; j < x[i].childNodes.length; j++) {
var detail = x[i].childNodes[j];
var lattr = detail.attributes.getNamedItem("name").nodeValue;
document.write("<br>");
document.write(lattr);
}
}
}
}
</script>
</body>
</html>