获取给定XML元素的所有有效属性

时间:2013-03-05 09:25:00

标签: c# .net xml .net-2.0

我在XmlDocument内加载了一个XML文档。该文档由绑定到给定模式的XmlReader加载(由XmlReaderSettings类)。

如何获取给定文档节点元素的允许属性列表?

XML看起来像这样,并且具有可选属性:

<row attribute1="1" attribute2="2" attribute3="something">
<row attribute1="3" attribute3="something">
<row attribute2="1" attribute3="something">

列表应包含attribute1,attribute2,attribute3

由于

1 个答案:

答案 0 :(得分:3)

我使用的是VS2010但2.0 Framework。 因为你有一个模式,你知道属性的名称,我尝试用你的XML样本创建一个基本标记。

XML

<base>
      <row attribute1="1" attribute2="2" attribute3="something"/>
      <row attribute1="3" attribute3="something"/>
      <row attribute2="1" attribute3="something"/>
</base>

代码隐藏

        XmlDocument xml = new XmlDocument();
        xml.Load(@"C:\test.xml");

        List<string> attributes = new List<string>();

        List<XmlNode> nodes = new List<XmlNode>();
        XmlNode node = xml.FirstChild;
        foreach (XmlElement n in node.ChildNodes)
        {
            XmlAttributeCollection atributos = n.Attributes;
            foreach (XmlAttribute at in atributos)
            {
                if(at.LocalName.Contains("attribute"))
                {
                    attributes.Add(at.Value);
                }
            }
        }

它提供包含所有属性的列表。