LINQ到XML的XElement查询NULL(LINQ-to-XML XElement query

2019-10-19 03:26发布

我试图UPDATE的一些子元素(在这种情况下,“正则表达式”) WHERE子元素(“名称”)==选择的名称(“账户号码”)中的一个。

这里是我的xmlDoc中的一个样本

<?xml version="1.0" encoding="utf-8"?>
<Bill>
  <Element>
    <Name>AccountNumber</Name>
    <Regex></Regex>
    <Left></Left>
    <Right></Right>
    <Top></Top>
    <Bottom></Bottom>
    <Relations></Relations>
  </Element>
  <Element>
    <Name>BillDate</Name>
    <Regex></Regex>
    <Left></Left>
    <Right></Right>
    <Top></Top>
    <Bottom></Bottom>
    <Relations></Relations>
  </Element>
</Bill>

这里是我到目前为止的代码。

XElement x = XmlDoc.Element("Bill")
                    .Elements("Element")
                    .Where(xel => xel.Element("Name").ToString() == CurrentSelection.ElementName)
                    .SingleOrDefault();
                x.Element("Regex").Value = details[1].Value;

查询运行后,的XElement,X,仍然是空...我是很新的LINQ(和lambda表达式),可以在这里使用一些指导。 谢谢!

Answer 1:

因为你convert元素到字符串,返回null,而不是它的value.You应检查孩子元素值这样的

xel.Element("Name").Value.ToString() == CurrentSelection.ElementName

而且我觉得这样值,则返回字符串ToString是多余这里只需要输入

xel.Element("Name").Value == CurrentSelection.ElementName


文章来源: LINQ-to-XML XElement query NULL