我正在尝试UPDATE
某个子元素(在本例中为“Regex”)WHERE
其中一个子元素(“Name”)== selected 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仍为null ...我是LINQ(和Lambdas)的新手,可以在这里使用一些指导。 谢谢!
答案 0 :(得分:3)
它返回null,因为你将元素转换为字符串,而不是它的值。你应该像这样检查子元素值
xel.Element("Name").Value.ToString() == CurrentSelection.ElementName
我认为Value返回字符串,所以ToString
在这里是多余的,只需输入
xel.Element("Name").Value == CurrentSelection.ElementName