使用XDocument解析基于元素的xml字符串

时间:2015-02-12 22:57:08

标签: xml string linq-to-xml

我有一个简单的xml元素字符串,我正在尝试解析为字符串。例如:

    <root>
      <element1>one</element1>
      <element2>two</element2>
    </root>"

我收到一个包含元素及其值的字符串。它被分配给一个字符串变量(例如字符串sxml)。

我正在尝试执行以下操作,但所有字符串都是空的。

string sOne = "";
string sTwo = "";

var strings = XDocument.Parse(sxml)
.Decendents("root")
.Select(n => new {
  sOne = n.Element("element1").Value,
  sTwo = n.Element("element2").Value
});

有人可以告诉我应该如何纠正我的语法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

首先,将Decendents更改为Decendants

然后,您的sOnesTwo字符串变量无法以这种方式初始化。 LINQ select new子句创建一个匿名类型的对象作为查询结果。

您的strings变量将保存1个匿名类型的对象,其中包含2个变量。

Anonymous type created with LINQ select new clause

要初始化您的初始字符串,您应该在代码下方添加以下两行:

sOne = strings.ElementAt(0).sOne;
sTwo = strings.ElementAt(0).sTwo;