【问题标题】:Getting a single xml node with javascript使用 javascript 获取单个 xml 节点
【发布时间】:2011-08-24 05:18:57
【问题描述】:

这应该很简单,但由于某种原因,我似乎无法让它工作; 所以我有一个如下的 XML 文件:

<board>
     <version>1</version>
<r>
    <c>
        <tile>g</tile>
    </c>

    <c>
        <tile>B</tile>
    </c>
</r>

<r>
    <c>
        <tile>C</tile>
    </c>

    <c>
        <tile>D</tile>
    </c>
</r>
</board>

还有一些 JavaScript,例如:

    function get_cversion(){
    if (window.XMLHttpRequest) { 
        xmlhttp = new XMLHttpRequest(); 
    } 
    else { 
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.open("GET", "board.XML", false); 
    xmlhttp.send(); 
    xmlDoc = xmlhttp.responseXML;
    var mytext = 0


    var x=xmlDoc.getElementsByTagName("version");
    mytext = (x[0].childNodes[0].nodeValue);
    mytext += "";
    document.frmOne.input1.value = ""+mytext;
}

最后,我在页面上有一个这样的表单:

<FORM NAME = frmOne>

    1val: <INPUT TYPE = Text NAME = input1 SIZE = 4 value ="">
    <p>
    <Input Type = Button NAME = b1 VALUE = "Save val" onClick = update_XX()>
    <p> 
    <Input Type = Button NAME = b2 VALUE = "WOOOOO" onClick = get_cversion()>
</FORM>

我对整个 XML 游戏还是很陌生。我知道我一定遗漏了一些非常明显的东西,但我看不到它,任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 是粘贴错误还是你真的错过了&lt;/board&gt;
  • 这就足够了——假设这确实是你的代码:document.frmOne.input1.value = (x[0].childNodes[0].nodeValue);

标签: javascript html xml web-applications xmlhttprequest


【解决方案1】:

您可能希望在处理 XML 之前检查请求的状态。你的代码应该是这样的,

    function get_cversion(){
    if (window.XMLHttpRequest) { 
        xmlhttp = new XMLHttpRequest(); 
    } 
    else { 
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.open("GET", "board.XML", false); 
    xmlhttp.send();                   
         if(xmlhttp.status == 200) {
          var xmlDoc = xmlhttp.responseXML;
          var mytext = 0       
          var x=xmlDoc.getElementsByTagName("version");
          mytext = (x[0].childNodes[0].nodeValue);
          mytext += "";
          document.frmOne.input1.value = ""+mytext;            
      }
}

【讨论】:

  • 对,所以我添加了 if 和 else document.frmOne.input1.value = "whoops";而且它会很糟糕......有什么想法吗?
  • 因为我是个白痴:board.xml != board.XML 。排序。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-20
  • 1970-01-01
相关资源
最近更新 更多