需要解析XML字符串

问题描述:

我需要一个解析XML字符串(.NET,C#),不幸的是,没有很好地形成.. XML流的是我得到的回复是需要解析XML字符串

<fOpen>true</fOpen> 
<ixBugParent>0</ixBugParent> 
<sLatestTextSummary></sLatestTextSummary> 
<sProject>Vantive</sProject> 
<ixArea>9</ixArea> 

我已经尝试过使用xml读取器,但是因为它认为它崩溃了,理所当然地,当它试图解析时有2个节点元素

有什么我可以用这个做的吗?我不能改变XML,因为我无法控制发回XML的代码..

任何帮助,将不胜感激。

感谢和问候

加甘·扬尤亚

我想你可以使用XmlParserContextXmlTextReader重载之一,以指定的节点类型为XmlNodeType.Element,类似于从MSDN这个例子(http://msdn.microsoft.com/en-us/library/cakk7ha0.aspx):

XmlTextReader tr = new XmlTextReader("<element1> abc </element1> 
    <element2> qrt </element2> 
    <?pi asldfjsd ?> 
    <!-- comment -->", XmlNodeType.Element, null); 

while(tr.Read()) { 
    Console.WriteLine("NodeType: {0} NodeName: {1}", tr.NodeType, tr.Name); 
    } 
+0

这比我提出的答案要容易一些。 – LarsH 2010-09-27 14:44:16

什么你得到背面是一个良好的XML 片段但正如你指出的那样,不是一个良好的XML文档。你能

  • 围绕返回的元素包围一个*元素?或
  • 将返回的XML片段作为外部实体从外壳XML文档中引用,并将外壳文档传递给XML阅读器?
+1

是的,我这样做@ larsH ..我不得不围绕被调过的元素包围一个*参数..那个想法总是存在......但是你不觉得,如果我这样做并且读取它的字符串,它会增加开销?因为我不得不做代码,在生产中,即使我想,我也必须这样做,它可能不是一个优雅的解决方案。 – Gagan 2010-09-28 13:16:21

+0

@ user412628:是的,它会增加一点开销。如果你在.NET中解析XML,我认为用@Michael建议使用XmlParserContext会更优雅。 – LarsH 2010-09-28 15:47:36