2

我的 xml 文件有这样的内容: 那么我怎样才能递归地获取属性的所有值并将它们添加到 a或. 也许是一个 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.我的xml文件是
<KeyWords>
...
<KeyWord name = "if" />
...
</KeyWord>


新问题The '\' character, hexadecimal value 0x5C, cannot be included in a name.,但文件相同。

4

2 回答 2

5

假设让变量 testXml 等于下面的 xml 字符串

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

使用 XElement 和 LINQ 提取名称属性值

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 回答