C# 需要解析xml字符串
我需要解析一个xml字符串(.NET,C#),不幸的是,它的格式不正确。。我得到的xml流是C# 需要解析xml字符串,c#,.net,xml,xsd,C#,.net,Xml,Xsd,我需要解析一个xml字符串(.NET,C#),不幸的是,它的格式不正确。。我得到的xml流是 <fOpen>true</fOpen> <ixBugParent>0</ixBugParent> <sLatestTextSummary></sLatestTextSummary> <sProject>Vantive</sProject> <ixArea>9</ixArea> tru
<fOpen>true</fOpen>
<ixBugParent>0</ixBugParent>
<sLatestTextSummary></sLatestTextSummary>
<sProject>Vantive</sProject>
<ixArea>9</ixArea>
true
0
有利的
9
我尝试过使用xml读取器,但它崩溃了,因为它认为,并且理所当然地认为,无论它尝试解析什么,都有2个节点元素
有什么我可以做的吗?我无法更改XML,因为我无法控制发送XML的代码
如有任何帮助,将不胜感激
谢谢和问候
Gagan Janjua您得到的是格式良好的XML片段,但正如您所指出的,不是格式良好的XML文档。你能吗
- 在返回的元素周围包装一个顶级元素?或
- 从shell XML文档中引用返回的XML片段作为外部实体,并将shell文档传递给XML读取器
XmlTextReader
重载中使用XmlParserContext
来指定节点类型为XmlNodeType.Element
,类似于MSDN()中的示例:
XmlTextReader tr=新的XmlTextReader(“abc
qrt
,XmlNodeType.Element,null);
while(tr.Read()){
WriteLine(“节点类型:{0}节点名称:{1}”,tr.NodeType,tr.Name);
}
这比我提出的答案要简单。是的,我在@larsH做了。我必须围绕被重复的元素包装一个顶级论点。。这种想法一直存在。。。但是,你不认为,如果我这样做并读回字符串,它会增加开销吗??因为我必须在生产中编写代码,所以我必须这样做,尽管我认为这可能不是一个优雅的解决方案。。你说???@user412628:是的,这会增加一点开销。如果您在.NET中解析XML,我认为使用@Michael建议的XmlParserContext会更优雅。
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);
}