2017-10-17 179 views
2

我得到了以下XML的結構:獲取子元素的名稱

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

我想讀的element的子元素的名稱是什麼? 因此,我使用System.Xml.Serialization來讀取其他元素/屬性,但我無法讀取子元素的名稱。

謝謝。

+2

通常*「有沒有辦法......」*問題顯示缺乏嘗試。請顯示你曾經試圖做的和研究的內容 –

+0

你總是可以自己遍歷一個'XmlDocument'的層次結構。 –

+0

'System.Xml.Serialization'是關於將內存中的對象序列化爲XML(以及將它們反序列化)。使用它來解析XML可能不是最好的方法。考慮使用'System.Xml.Linq'命名空間(起點:'XDocument'類)。 – decPL

回答

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; 
     } 
    } 
}