C# 处理LINQXML字符串
我需要用Linq解析XML字符串,我想出了以下代码C# 处理LINQXML字符串,c#,linq,mono,C#,Linq,Mono,我需要用Linq解析XML字符串,我想出了以下代码 using System; using System.Linq; using System.Xml.Linq; class LinqXml { public void Parse(string input) { XDocument xdoc = XDocument.Load(input); var lang = from d in xdoc.Elements("PipeUnit").Elements("Ste
using System;
using System.Linq;
using System.Xml.Linq;
class LinqXml
{
public void Parse(string input)
{
XDocument xdoc = XDocument.Load(input);
var lang = from d in xdoc.Elements("PipeUnit").Elements("Step").Elements("Pipelist").Elements("NamedPipe").Elements("NameOfPipe") select d;
Console.WriteLine(lang.First().Value);
foreach (var item in lang)
{
Console.WriteLine(item.Value);
}
}
static void Main()
{
string tempString = @"
<PipeUnit>
<Step>
<Pipelist>
<NamedPipe>
<NameOfPipe>Name</NameOfPipe>
<PipeData>Data</PipeData>
</NamedPipe>
</Pipelist>
</Step>
</PipeUnit>
";
var linqXml = new LinqXml();
linqXml.Parse(tempString);
}
}
可能有什么问题?在您的解析方法中,您希望
XDocument.Parse(input)
替换此项:
XDocument xdoc = XDocument.Load(input);
与:
您正在传递的是XML,而不是文件名。Replace
XDocument xdoc = XDocument.Load(input);
与
这是因为你的XML是无效的:它应该是无效的,而不是在最后——你得到的例外情况就是这样。
XDocument xdoc = XDocument.Parse(input);
XDocument xdoc = XDocument.Load(input);
XDocument xdoc = XDocument.Parse(input);