繁体   English   中英

如何获取C#中元素的第一个和最后一个子节点内的所有节点的值

[英]How do I get the values of all the nodes within the first and last child nodes of an element in C#

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

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

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

我想我可以对节点的值应用某种类型的正则表达式,该值始终以“ package”开头,以“;”结尾。 还是一些LINQlambda表达式?

自从我正在处理一个大型XML文件并且此节点是文件的一部分以来,最有效的方法是什么?

好吧,在这种情况下,我只会使用:

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

(其中element是表示<package>XElement 。)

或者,如果存在其他名称空间:

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

(其中element是表示<package>XElementns + "name"stringXNamespace组合在一起以给出正确的XName 。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM