2

私のxmlファイルには次のようなものがあります:属性 のすべての値を再帰的に取得し、またはに追加するにはどうすればよいですか? たぶん foreach ループ?
...
<Keyword name = "if" />
<Keyword name = "else" />
<Keyword name = "is" />
...

nameList<string>string[]


codemeit に従っていると、エラーが発生し続けます: Data at the root level is invalid. Line 1, position 1.My xml file is
<KeyWords>
...
<KeyWord name = "if" />
...
</KeyWord>


新しい問題The '\' character, hexadecimal value 0x5C, cannot be included in a name.ですが、同じファイルです。

4

2 に答える 2

5

let 変数 testXml が次の xml 文字列と等しいと仮定します。

<Keywords>
 <Keyword name = "if" />
 <Keyword name = "else" />
 <Keyword name = "is" />
</Keywords>

XElement と LINQ を使用して name 属性値を抽出する

var myXml = XElement.Parse(testXml );
var myArray = myXml.Elements().Where(n => n.Name.LocalName.Equals("Keyword"))
                    .Select(n => n.Attribute("name").Value)
                    .ToArray();

myArray には {"if", "else", "is"} が含まれます

アップデート

@SLaks コメントのおかげで、実際にできることは

var myArray = myXml.Elements("Keyword").Attributes("name").Select(n => n.Value);
于 2010-01-10T03:56:42.880 に答える
0

XmlNodeListクラスを利用できます。値を取得してリストを反復するには、適切な XPATH を渡す必要があります。

于 2010-01-10T03:52:58.410 に答える