获取Xml-Deserialization中节点的所有子元素的名称

时间:2017-10-17 09:40:03

标签: c# xml xmlserializer

我得到了以下XML结构:

<Root>
    <Element Attribute="attibute">
        <ElementINeedNameOf />
        <AnotherElementINeedNameOf />
    </Element>
</Root>

我正在尝试阅读element的子元素的名称? 因此我使用System.Xml.Serialization来读取其他元素/属性,但我无法读取它的子元素的名称。

谢谢。

1 个答案:

答案 0 :(得分:4)

通过XmlAnyElement选择父元素是可行的。

以下代码显示了一个示例解决方案:

[XmlAnyElement("Element")]
public XmlElement Elements{ get; set; }

[XmlIgnore]
public List<string> ElementNames
{
    get
    {
        var elementNames = new List<string>();
        if (Elements != null && Elements.HasChildNodes)
        {
            elementNames.AddRange(from XmlNode elementsChildNode in Elements .ChildNodes select elementsChildNode.Name);
            return elementNames ;
        }
        else
        {
            //return empty List
            return tagNames;
        }
    }
}