【问题标题】:LINQ-to-XML XElement query NULLLINQ-to-XML XElement 查询 NULL
【发布时间】:2013-12-24 16:37:03
【问题描述】:

我正在尝试 UPDATE 某事物的子元素(在本例中为“Regex”)WHERE 子元素之一(“Name”)== 选定名称(“AccountNumber”)。

这是我的 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(和 Lambdas)非常陌生,可以在这里使用一些指导。 谢谢!

【问题讨论】:

    标签: c# xml linq lambda linq-to-xml


    【解决方案1】:

    它返回 null 因为你将元素转换为字符串,而不是它的值。你应该像这样检查子元素值

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

    我认为 Value 返回字符串,所以 ToString 在这里是多余的,只需输入

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

    【讨论】:

    • 哇...不敢相信我做到了。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多