Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/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 getElementById不';我找不到结果_Javascript_Html_Xml_Dom - Fatal编程技术网

Javascript getElementById不';我找不到结果

Javascript getElementById不';我找不到结果,javascript,html,xml,dom,Javascript,Html,Xml,Dom,我试图通过所有标记的id来解析xml文件。 这是我的xml <?xml version="1.0" encoding="UTF-8"?> <zones> <bedroom id="0"> <fan id="00">on</fan> <tv id="01">off</tv> </bedroom> <hall id="1">

我试图通过所有标记的id来解析xml文件。 这是我的xml

    <?xml version="1.0" encoding="UTF-8"?>
    <zones>
    <bedroom id="0">
       <fan id="00">on</fan>
       <tv id="01">off</tv>
    </bedroom>
    <hall id="1">
    <tube id="10">on</tube>
    <bulb id="11">off</bulb>
    <fan id="12">on</fan>
    <tv id="13">on</tv>
    <ac id="14">on</ac>
    </hall>
    <kitchen id="2">
    <freez id="20">on</freez>
    </kitchen>
    <toilet id="3">
        <bulb id="30">on</bulb>
    </toilet>
    <bathroom id="4">
        <heater id="40">on</heater>
    </bathroom>
   </zones>
一切正常。但是当我把它改成

var x=xmlDoc.getElementById("0"); 
浏览器中不显示任何内容。所以,请帮我解决这个问题,我被困在这个问题上。

请使用 getElementById

不是 getElementsById

请使用
var x=xmlDoc.getElementsById("0")
getElementById

不是 getElementsById

var x=xmlDoc.getElementsById("0")
应该是

var x=xmlDoc.getElementById("0")
getElementsbyId

应该是

var x=xmlDoc.getElementById("0")

不是
getElementsbyId

看起来您有三个错误:


  • 在第15行中,您正在使用:

    var x=xmlDoc.getElementsById("0");
    
    应该是:

    var x=xmlDoc.getElementById("0");
    
    如果您还没有发现差异:

    您正在使用
    getElementsById

    当您应该使用
    getElementById()

  • 文件是在您的计算机上,还是在服务器上(包括家庭服务器(XAMPP、EasyHP等))

    XMLHttpRequest()
    只有在HTTP服务器上才能工作

    我发现以下错误:

    您可以安装其中一个:

    我建议使用XAMPP或EasyHP,因为它们更易于设置

    然后将XML和HTML文件放在htdocs文件夹中

    最后,转到服务器并导航到HTML文件

    它对我的工作:

    HTML文件上的输出:

  • 您需要在文件中添加DTD,以使其在某些浏览器中工作,或者您可以将
    id
    属性更改为
    xml:id
    。它将在大多数(可能全部)现代浏览器中工作



  • 更新:OP已将代码从
    getElementsById()
    更改为
    getElementById()

    看起来您有三个错误:


  • 在第15行中,您正在使用:

    var x=xmlDoc.getElementsById("0");
    
    应该是:

    var x=xmlDoc.getElementById("0");
    
    如果您还没有发现差异:

    您正在使用
    getElementsById

    当您应该使用
    getElementById()

  • 文件是在您的计算机上,还是在服务器上(包括家庭服务器(XAMPP、EasyHP等))

    XMLHttpRequest()
    只有在HTTP服务器上才能工作

    我发现以下错误:

    您可以安装其中一个:

    我建议使用XAMPP或EasyHP,因为它们更易于设置

    然后将XML和HTML文件放在htdocs文件夹中

    最后,转到服务器并导航到HTML文件

    它对我的工作:

    HTML文件上的输出:

  • 您需要在文件中添加DTD,以使其在某些浏览器中工作,或者您可以将
    id
    属性更改为
    xml:id
    。它将在大多数(可能全部)现代浏览器中工作



  • 更新:OP已将代码从
    getElementsById()
    更改为
    getElementById()

    getElementById返回一个属性类型为“ID”的元素,而不是名为“ID”的属性。如果XML文件中没有DTD,则没有定义类型的属性,因此getElementById将始终返回null

    W3Schools在解释如何使用DTD方面做得相当好


    我建议,如果你走这条路线,你考虑为XML元素使用一个更通用的名称,并使用一个属性来描述元素引用的空间或应用(例如,而不是使用或代替使用)。否则,DTD将比实际需要的更大、更难维护。

    getElementById返回具有类型为“ID”的属性的元素,而不是名称为“ID”的属性。如果XML文件中没有DTD,则没有定义类型的属性,因此getElementById将始终返回null

    W3Schools在解释如何使用DTD方面做得相当好


    我建议,如果你走这条路线,你考虑为XML元素使用一个更通用的名称,并使用一个属性来描述元素引用的空间或应用(例如,而不是使用或代替使用)。否则,您的DTD将比实际需要的更大、更难维护。

    var x=xmlDoc.getElementById(“0”)


    字母字符非常重要

    var x=xmlDoc.getElementById(“0”)


    字母字符是非常重要的

    文件的大量使用。书写
    应被视为犯罪行为。标题令人困惑。您可能是指javascript的getElementById。您是否使用了正确的拼写getElementById()而不是getElementsById()?@TJ.-实际上是这样。但是这个问题甚至与PHP无关。@阿尔瓦罗:谢谢,我已经更改了我的评论。大量使用
    document.write
    应该被视为犯罪行为。标题令人困惑。您可能是指javascript的getElementById。您是否使用了正确的拼写getElementById()而不是getElementsById()?@TJ.-实际上是这样。但这个问题甚至与PHP无关。@alvarog.Vicario:谢谢,我已经更改了我的评论。@AMUL好的,这是通过查看它来实现的。我将尝试使用JSFIDLE或类似的工具。我尝试通过复制htdocs文件夹中的xml和html文件来实现这一点,但同样如此output@AMUL你在用Apache、EasyHP、XAMPP或其他什么?我在用Apache。。。但身份部分对我来说仍然不起作用。还有其他解决方案吗?@AMUL你确实去了,或者,对了,不只是用文件打开它://URI@AMUL好的,那是通过查看它。我将尝试使用JSFIDLE或类似的工具。我尝试通过复制htdocs文件夹中的xml和html文件来实现这一点,但同样如此output@AMUL你在用Apache、EasyHP、XAMPP或其他什么?我在用Apache。。。但身份部分对我来说仍然不起作用。还有其他的解决办法吗?阿穆尔你去了,或者,对了,不只是用菲林打开它