【发布时间】:2015-03-12 04:32:24
【问题描述】:
这是我的 XML:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE taxes[
<!ELEMENT tax (name,percent,description)>
<!ATTLIST tax id CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT percent (#PCDATA)>
<!ELEMENT description (#PCDATA)>
]>
<taxes>
<tax id="Tax-1">
<name>Tax 1</name>
<percent>6.75</percent>
<description>Ohio sales tax</description>
</tax>
</taxes>
还有我的 C# 代码:
XmlDocument doc = new XmlDocument();
doc.Load("path-to-file");
XmlElement element = doc.GetElementById("Tax-1");
每当我尝试使用element 做事时,我都会得到NullReferenceException。
我做了一些研究,发现需要有效的 DTD,但据我所知,一切都是有效的......
【问题讨论】:
-
@kennyzx 你读过这个问题吗?我已经有一个 DTD,这不是 HTML...
-
基于 xmlwriter.net/xml_guide/attlist_declaration.shtml 和 msdn.microsoft.com/en-us/library/… 似乎您必须在 DocType 中将 id 声明为 ID 而不是 CDATA。
-
能否向我们展示您的完整错误信息。
element是否为空?