Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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?_Javascript_Xml - Fatal编程技术网

Javascript 有没有办法通过属性获取元素xml?

Javascript 有没有办法通过属性获取元素xml?,javascript,xml,Javascript,Xml,我试图通过属性获取xml节点 编辑 我正在尝试使用javascript xml而不是jquery通过属性值检索元素。有没有一种简单的方法可以做到这一点?jquery可以很容易地做到这一点 我觉得这证明了一个新答案的合理性,因为它是JQuery免费的 document.getElementsByAttribute = function(attribute, value, tagName, parentElement) { var children = ($(parentElement) |

我试图通过属性获取xml节点

编辑


我正在尝试使用javascript xml而不是jquery通过属性值检索元素。有没有一种简单的方法可以做到这一点?

jquery可以很容易地做到这一点

我觉得这证明了一个新答案的合理性,因为它是JQuery免费的

document.getElementsByAttribute = function(attribute, value, tagName, parentElement) {
    var children = ($(parentElement) || document.body).getElementsByTagName((tagName || '*'));
    return $A(children).inject([], function(elements, child) {
        var attributeValue = child.getAttribute(attribute);
        if(attributeValue != null) {
            if(!value || attributeValue == value) {
                elements.push(child);
            }
        }
        return elements;
    });
}


有人向我指出我贴错了剧本。。呵呵,读了


您必须首先找到元素列表,然后根据它们的属性进行过滤


在这里查看我的演示:

使用jQuery非常简单。假设我们有这样一根弦

<document>
   <value type="people">
      <name>
         John
      </name>
   </value>
   <value type="vehicle">
      <name>
         Ford
      </name>
   </value>
</document>

我们会找回字符串“John”。

不要那样做。这很粗鲁。在通过属性抓取元素之前,请尝试与元素对话。说真的,你能详细说明你的问题吗?您尝试了什么,结果如何?我尝试使用javascript而不是jquery.find(“node[id='1'])获取元素。请不要在标题前加上“javascript:”。这就是标签的用途。如果你不想使用jQuery,你可以在IE中使用
DomParser
loadXML
:但是说真的,使用jQuery。检查这个链接可能是值得的:但不确定这是否是你想要的。我正在动态构建一个xml,jquery与IE不兼容。您确定这是一个没有jquery的答案吗<代码>$(parentElement)?哎呀!我在同一论坛上看了两个。。。。我两个都考了。。对我来说似乎很有用。所以不完全是jQuery免费的,但是jQuery lite是肯定的-没有扩展/插件/模块…无论如何,谢谢你,我只是通过循环元素并比较属性来得到结果。我只是想知道是否有像jquery这样更简单的东西。。。编辑对代码进行了删减。。对不起,我就是这么做的。。我只是想看看还有没有更简单的方法。
<document>
   <value type="people">
      <name>
         John
      </name>
   </value>
   <value type="vehicle">
      <name>
         Ford
      </name>
   </value>
</document>
var xmlDocument = $.parseXML(str);
$(xmlDocument).find("value[type='people'] name").text()