为什么 XmlDocument.GetElementById 始终返回 null?
我有一些 XML(有效的 XHTML),如下所示:
<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>
我正在尝试使用 docment.GetElementById("myHeader")
获取 #myHeader
节点,但是它总是返回null
。为什么?
我猜测它不会将id
属性识别为没有DTD或其他内容的id属性?如果是这样,我怎样才能让它使用 HTML DTD?
I've got some XML (valid XHTML) that looks like this:
<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>
And I'm trying to get the #myHeader
node using docment.GetElementById("myHeader")
but it always returns null
. Why?
I'm guessing it doesn't recognize the id
attribute as the id attribute without a DTD or something? If that's the case, how can I get it to use an HTML DTD?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为 XmlDocument 对
id
的含义一无所知。您需要在 XHTML 文档中包含 DTD。只需将以下内容放在 html 文件的开头即可:示例:
请注意,这可能会慢一些,因为需要下载 DTD。
It's because XmlDocument knows nothing about what an
id
means. You need to include a DTD in your XHTML document. Just put the following in the beginning of your html file:Example:
Notice that this might be a little slower because the DTD needs to be downloaded.