我有个问题。
仍在从事一个项目,但我陷于困境。
我们有以下代码:
var copyitems = doc.Descendants(application) // Read all descendants
.SelectMany(x => x.Elements("Test"))
.Select(s =>
{
var splits = s.Value.Split(new string[] { "@SRCDIR@", "@INSTDIR@" }, StringSplitOptions.RemoveEmptyEntries); // split the string to separate source and destination.
return new { Source = splits[0].Replace(",", ""), Destination = splits[1].Replace(",", "") };
})
.ToList();
结合以下xml示例:
<root>
<Test>
<Copy>@SRCDIR@\test1 ,@INSTDIR@\test1</Copy>
</Test>
<root>
但是xml现在变为:
<root>
<Test>
<Copy>
<Source>@SRCDIR@\test</Source>
<Destination>@INSTDIR@\test1</Destination>
</Copy>
</Test>
<root>
我现在该怎么做,但除了进行拆分外,只需阅读源和目标的信息即可。
另外,您可以有多个副本后代,也可以有其他名称的后代,它们没有源值和目标值
最佳答案
寻找Element
方法,该方法接受元素名称作为输入。
var copyitems = doc.Descendants(application) // Read all descendants
.SelectMany(x => x.Elements("Test"))
.Select(s =>
{
return new
{
Source = s.Element("Source").Value.Replace("@SRCDIR@", ""),
Destination =s.Element("Destination").Value.Replace("@INSTDIR@", "")
};
})
.ToList();
关于c# - C#Linq获得后代的值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37805054/