首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用javascript DOM解析此XML?

如何使用javascript DOM解析此XML?
EN

Stack Overflow用户
提问于 2014-01-18 13:02:23
回答 1查看 35关注 0票数 0

这是我的xml

代码语言:javascript
运行
复制
<colors>
<SET name="temp">
    <menu>#9c7db5</menu>
    <menuTxt>#ffffff</menuTxt>
    <tH>#FFF</tH>
    <tHTxt>#000</tHTxt>
    <head>#919191</head>
    <headTxt>#ffffff</headTxt>
    <label>#2e2e2e</label>
    <but>#8f8f8f</but>
    <butTxt>#ffffff</butTxt>
    <footer>#FFF</footer>
    <footTxt>#000</footTxt>
    <backT>#FFF</backT>
</SET>
<SET name="footercheck">
    <menu>#6492c4</menu>
    <menuTxt>#ffffff</menuTxt>
    <tH>#FFF</tH>
    <tHTxt>#000</tHTxt>
    <head>#4275b3</head>
    <headTxt>#ffffff</headTxt>
    <label>#0a0a66</label>
    <but>#3b66a8</but>
    <butTxt>#ffffff</butTxt>
    <footer>#5f90b0</footer>
    <footTxt>#ffffff</footTxt>
    <backT>#FFF</backT>
</SET>
</colors>

用户将按<SET>标记的“name”属性进行搜索。一旦给定的名称与任何<SET>标记相匹配,我就需要获取它的所有子节点的值。(<menu><menutxt>..etc)。

这就是我到目前为止所尝试的。

代码语言:javascript
运行
复制
function parseXML{
                   if (window.XMLHttpRequest)
        {
            xmlhttp=new XMLHttpRequest();
        }
        else
        {
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }var y;
        xmlhttp.open("GET","style/userTheme.xml",false);
        xmlhttp.send();
        xmlDoc=xmlhttp.responseXML;
        var x=xmlDoc.getElementsByName(iid); //'iid' is user's input
        for (var i = 0; i < x.length; i++) {   
            x[i].childNodes[0].nodeValue
        } 
}

我检查了“X”的长度,它是“1”。所以它将整个XML过滤成一个<SET>。但我不知道如何继续下去。如果你知道,请给我回复。

EN

回答 1

Stack Overflow用户

发布于 2014-01-18 15:47:09

您显示的不是有效的XML。它没有第一行指示它是一个XML文档。下面这一行丢失了,这可能会在解析时给您带来问题。

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>

如果希望的所有子节点都具有给定的名称,有两种方法可以实现。

  • 你可以遍历所有的节点,找到具有给定名称的节点,并检索它的所有子节点。修改您的代码片段,您可以将它们作为函数的结果返回,并随心所欲地执行(例如,显示它们)。

childrenNodes;

  • Another childrenNodes = new Array();对于(var i= 0;i< x.length;i++) { childrenNodesi = xi.childNodes.nodeValue;}返回childrenNodes;

  • Another的方法是,使用XQuery或XPath在DOM中查询特定元素并返回结果。

var result = doc.evaluate('/form/setname='+iid+'',xmlDoc,null,XPathResult.STRING_TYPE,null);返回结果;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21200216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档