2011-07-06 58 views
1

我必須分別獲得列表中的所有實體源,實體目標,屬性源和屬性目標值。如何使用XDocument讀取列表中XML的所有元素和子節點?

<?xml version="1.0" encoding="utf-8" ?> 
<Entities> 
    <Entity Source="E_cdclient" Target="cd_client"> 
    <Property Source="KnowledgeItemId" Target="CLIENT_CONTACT_ID"/> 
    <Property Source="KnowledgeClientID" Target="CLIENT_CONTACT_ID"/> 
    </Entity> 
    <Entity Source="E_cdclientsystem" Target="cd_client_system"> 
    <Property Source="PrimaryKnowledgeItemId" Target="0"/> 
    <Property Source="RelatedKnowledgeId" Target="0"/> 
    </Entity> 
    <Entity Source="E_cdclient_cdclientcontact" Target="cd_client_contact"> 
    <Property Source="shortdescription" Target="analysis_short_description"/> 
    <Property Source="OWNERID" Target="REF_PROJECT_OWNER_ID"/> 
    </Entity> 
</Entities> 

我正在使用XDocument。

Public Function ReadXML() As List(Of String) 

    'Create the XML Document' 
    Dim m_xmld = New XmlDocument() 

    'Load the Xml file' 
    m_xmld.Load("C:\\MappingFile.xml") 

    'Get the list of name nodes' 
    Dim m_nodelist = m_xmld.SelectNodes("/Entities/Entity") 

    Return list 
End Function 

我該怎麼做?

如何使用XDocument讀取列表中XML的所有元素和子節點?

+3

'XDocument'或'XmlDocument'?你的文字說一件事,你的代碼說另一件事。這兩個是不同的東西。 –

回答

1
Dim lElements = (From el In xml.Descendants("Entity") 
        Select Prop1 = el.Attribute("Prop1").Value, el.Value).ToList 

此代碼會給你對象的名單與2個屬性:

  • PROP1:你的屬性的名稱
  • 值:實體節點值

您可以輕鬆地擴展與所有你需要的屬性。

相關問題