Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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
Javascript 双XML DOM getAttribute()方法+;条件_Javascript_Html_Xml_Dom - Fatal编程技术网

Javascript 双XML DOM getAttribute()方法+;条件

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文件,我想使用JavaScript从中提取一些属性,但我只希望它返回来自父节点的属性与我在以前的脚本中作为HTML页面的一部分设置的全局变量匹配时出现的属性

下面是我的XML文件

<?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>