我有一個文本流,其中包含任意純文本和格式良好的xml元素的段。我如何讀取它並僅提取xml元素?將ConformLevel設置爲Fragment的XmlReader在遇到純文本時仍會引發異常,這對xml格式不正確。從混合XML和純文本的流中讀取
任何想法?由於
這裏是我到目前爲止的代碼:
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
using (XmlReader reader = XmlReader.Create(stream, settings))
while (!reader.EOF)
{
reader.MoveToContent();
XmlDocument doc = new XmlDocument();
doc.Load(reader.ReadSubtree());
reader.ReadEndElement();
}
這裏有一個樣品流的內容和我的方式有沒有控制權:
Found two objects:
Object a
<object>
<name>a</name>
<description></description>
</object>
Object b
<object>
<name>b</name>
<description></description>
</object>
這不是XML,如果你有純文本。不要試圖將它解析爲Xml。你能更準確地描述源的格式嗎?也許HtmlAgilityPack可以幫助你,它可以解析Html,它是節點和純文本的混合體。 – 2012-07-19 07:06:40
我知道這不是,否則這會容易得多!我已經添加了一個樣本流內容(不知道如何關閉顏色突出顯示在這裏..對不起) – veezi 2012-07-19 07:20:26
對於語法突出顯示,您可以強制語言使用'<! - language:lang-html - > '(請參閱幫助更多信息)。你應該嘗試一下HtmlAgility包,關於你的源碼流。或者你有一個可靠的方法來知道純文本和什麼是XML(類似於知道模式:1個文本,1個XML節點,1個文本,1個XML節點,etC.) – 2012-07-19 07:31:33