2017-08-07 92 views
-1

我有一些XMLWriter的代碼,我需要修改: C#的XMLWriter - 非標準的XML元素

XmlWriter messageWriter = XmlWriter.Create(strbuilder); 
messageWriter.WriteStartDocument(); 

//Add this line below 
messageWriter.???? (@"<!DOCTYPE message SYSTEM "work_request_20.dtd">"); 

messageWriter.WriteStartElement("message"); 
messageWriter.WriteAttributeString("message_id", id.ToString()); 
messageWriter.WriteAttributeString("message_dt", Lb.TestDate.ToString("MM/dd/yyyy hh:mm:ss.fff tt")); 

遺憾的是,到目前爲止,不管我用連接到XMLWriter的哪一種方法它不喜歡的「< 「」>「或」!「字符。如果我使用StartElement或類似的,我相信它會爲我添加「<>」。

如果我將所有三個字符取出(<,>,!),那麼它會告訴我「消息=狀態文檔中的令牌文本將導致無效的XML文檔。

請告知如何使這項工作。

謝謝。

回答

-1

我找到了我需要的答案。它是:xmlwriter.WriteRaw

這是一種特殊情況,本身不是「真正的」xml文件,但它是基本的XML格式。但是,對於這種特殊情況,我需要編寫非標準的XML,並且它看起來像「WriteRaw」將做我所需要的。

+0

它是XML或不是。一旦開始使用非標準實踐,您會發現與其他系統或應用程序的互操作性失敗(可能在您離開公司後數年)。 – Neil

1

你想要WriteDocType。使用如下:

messageWriter.WriteDocType("message", null, "work_request_20.dtd", null); 

請參閱this fiddle的演示。