0

我有一个具有以下结构的 XML 节点:

<package>package <name>com</name>.<name>sample</name>.<name>app1</name>;</package>

名称标签可以出现随机次数,我想要的是获取元素列表中第一个和最后一个子节点之间的所有子节点的值,以获得这样的值:com.sample.app1

我想我可以将某种类型的正则表达式应用于始终以“package”开头并以“;”结尾的包节点的值。或者也许是一些LINQlambda表达?

既然我正在处理一个大型 XML 文件并且该节点是其中的一部分,那么最有效的方法是什么?

4

1 回答 1

3

那么在这种情况下,我只会使用:

var package = string.Join(".", element.Elements("name").Select(x => x.Value));

(代表element在哪里XElement<package>。)

或者,如果有不同的命名空间:

XNamespace ns = "http://some.namespace/here";
var package = string.Join(".", element.Elements(ns + "name")
                                      .Select(x => x.Value));

(代表在哪里element,并将a与 an组合以赋予权利。)XElement<package>ns + "name"stringXNamespaceXName

于 2013-02-19T21:36:52.167 回答