mpe*_*pen 2 c# xmldocument sgmlreader
我有一些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>
Run Code Online (Sandbox Code Playgroud)
我正在尝试#myHeader使用节点,docment.GetElementById("myHeader")但它总是返回null.为什么?
我猜它不会将id属性识别为没有DTD或其他东西的 id属性?如果是这种情况,我怎样才能使用HTML DTD?
这是因为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">
Run Code Online (Sandbox Code Playgroud)
例:
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");
Run Code Online (Sandbox Code Playgroud)
请注意,这可能会慢一些,因为需要下载DTD.
| 归档时间: |
|
| 查看次数: |
4674 次 |
| 最近记录: |