Вот мой XML:XmlDocument.GetElementById() возвращает нуль
<?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, но, насколько я знаю, все справедливо ...
HTTP: // StackOverflow. com/a/3775800/815938 – kennyzx
@kennyzx Вы прочитали вопрос? У меня уже есть DTD, и это не HTML ... – djmordigal
На основе http://xmlwriter.net/xml_guide/attlist_declaration.shtml и http://msdn.microsoft.com/en-us/library/system.xml. xmldocument.getelementbyid% 28v = vs.110% 29.aspx Кажется, вам нужно объявить id как идентификатор в DocType, а не как CDATA. – user92454