代码之家  ›  专栏  ›  技术社区  ›  mpen

为什么会这样XmlDocument.GetElementById总是返回null?

  •  2
  • mpen  · 技术社区  · 14 年前

    <html>
        <head>
            <script type="text/javascript">
                <![CDATA[
                    function change_header(){
                        document.getElementById("myHeader").innerHTML="Nice day!";
                    }]]>
            </script>
        </head>
        <body>
            <h1 id="myHeader">Hello World!</h1>
            <button onclick="change_header()">Change text</button>
        </body>
    </html>
    

    我正试着得到 #myHeader 节点使用 docment.GetElementById("myHeader") null . 为什么?

    我是 它不认识 id 这个

    1 回复  |  直到 9 年前
        1
  •  7
  •   Darin Dimitrov    14 年前

    这是因为XmlDocument不知道 id 手段。您需要在XHTML文档中包含DTD。只需将以下内容放在html文件的开头:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    

    string html = @"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""><html><body><div id=""foo"">some content</div></body></html>";
    XmlDocument document = new XmlDocument();
    document.LoadXml(html);
    XmlElement div = document.GetElementById("foo");
    

    推荐文章