0

次の構造のXMLノードがあります。

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

nameタグはランダムに何度も表示される可能性があります。必要なのは、要素のリストの最初と最後の子の間のすべての子ノードの値を取得して、com.sample.app1のような値を取得することです

常に「package」で始まり「;」で終わるパッケージノードの値に、ある種の正規表現を適用できると思います。または多分いくつかLINQまたはlambda表現?

大きな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で、XElementを表し<package>、とns + "name"を組み合わせstringXNamespace権利を与えますXName。)

于 2013-02-19T21:36:52.167 に答える