如何使用javascript从xml文件中检索特定元素并返回其节点

如何使用javascript从xml文件中检索特定元素并返回其节点,javascript,xml,Javascript,Xml,如何在javascript中从xml检索数据 data.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <Lexical-Entry> <Synset> <Word val="aare"/> <SynsetRelation> <Relation att="iof" hypernym="thing"

如何在javascript中从xml检索数据

data.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Lexical-Entry>
    <Synset>
        <Word val="aare"/>
        <SynsetRelation>
            <Relation att="iof" hypernym="thing" val="river"/>
        </SynsetRelation>
        <ID WordnetId="09186064" uw_id="1"/>
    </Synset>
    <Synset>
        <Word val="aarhus"/>
        <SynsetRelation>
            <Relation att="iof" hypernym="thing" val="city"/>
            <Relation att="equ" val="arhus"/>
        </SynsetRelation>
        <ID WordnetId="08762104" uw_id="2"/>
    </Synset>
    <Synset>
        <Word val="aaron"/>
        <SynsetRelation>
            <Relation att="icl" hypernym="abstract_thing" val="name"/>
            <Relation att="com" val="male"/>
            <Relation att="nam" val="person"/>
        </SynsetRelation>
        <ID WordnetId="0" uw_id="3"/>
    </Synset>
</Lexical-Entry>

test.html

<html>
<body>
    <div>
                <h1>Search Word</h1>
                <br/>
                <input type="text" name="SearchValue" placeholder="Enter a word" />
                <br/>
                <br/>
                <input type="submit"  value="Search"/>
            </div>

</body>
</html>

搜索词




当用户输入一个词来搜索ex:aaron时,它应该检索aaron synset的值。当用户输入word时,它应该在data.xml中搜索该单词,然后检索aaron synset的值。

不完全理解您的问题,但此代码从xml字符串中提取
synset
元素,其中
Name
节点值为
aaron

它会让你知道如何取回你需要的东西。如果没有,请在何时发布更多代码,说明您试图实现的方式和内容

var xml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?><Lexical-Entry><Synset><Word val="aare"/><SynsetRelation><Relation att="iof" hypernym="thing" val="river"/></SynsetRelation><ID WordnetId="09186064" uw_id="1"/></Synset><Synset><Word val="aarhus"/><SynsetRelation><Relation att="iof" hypernym="thing" val="city"/><Relation att="equ" val="arhus"/></SynsetRelation><ID WordnetId="08762104" uw_id="2"/></Synset><Synset><Word val="aaron"/><SynsetRelation><Relation att="icl" hypernym="abstract_thing" val="name"/><Relation att="com" val="male"/><Relation att="nam" val="person"/></SynsetRelation><ID WordnetId="0" uw_id="3"/></Synset></Lexical-Entry>'

var parsedXml = (new window.DOMParser()).parseFromString(xml, 'text/xml')
var valueToLookFor = 'aaron';
var node = parsedXml.querySelector('Word[val="' + valueToLookFor +'"]').parentNode
var xml=''
var parsedXml=(new window.DOMParser()).parseFromString(xml,'text/xml')
var valueToLookFor='aaron';
var node=parsedXml.querySelector('Word[val=“”+valueToLookFor+'”).parentNode
如果重用的代码,就可以实现它

您将获得
的父节点

下面的代码很难看,因为原来的代码是。所以我建议你完全重做你自己的,但你有这个想法

Array.prototype.where=函数(匹配器){
var结果=[];
for(var i=0;i元素[i]!!!
}


您退房了吗?它可能会回答你的问题。@Asagnome是的,我查过了,但我需要的不是那么多。当用户搜索单词aaron时,我需要完整的节点,并且应该存储该节点,以便我可以访问其子值。如何从xml文件中提取它,而不是使用变量中的xml内容。?只需使用
XMLHttpRequest
$。ajax
。在这里,您可以帮助我如何使用d3.js加载外部xml吗文件?我不太熟悉d3.js,但您可以使用
$从服务器到浏览器获取文件。ajax
就像我在前面的评论中提到的那样。您能为我提供一个片段吗。?我尝试过使用ajax,但我无法获得它。我如何从外部xml文件中获取数据,然后如何像这里这样访问?它使用XHR:。文档做得很好,有示例,您不必使用jQuery(以及ajax)。