2013-03-14 50 views
0

下面獲取該元素是我使用來獲取「名」的值「人」不能用的XDocument

參數標籤=「人」和參數屬性(屬性)的代碼=」命名」

public static string GetInformationFromXML(string tag, 
              string attribute, 
              string filePath) 
{ 
     XDocument doc = XDocument.Load(filePath); 
     string info = doc.Element(tag).Attribute(attribute).Value; 

     return info; 
} 

doc.Element(TAG)是沒有得到的元素,即使當我展開的文檔,它確實有一個元素與類型‘元素’,名稱爲‘人’ 正在讀取的文件是對的XmlDocument你的資料。下面

是文件的XML我想讀

<?xml version="1.0"?> 
<import> 
    <company name1="ABC" name2="" action="create" 
      profile="\Profiles\ABC\" id="C1"> 
    <address street="industrial" city="london" 
      country="england" id="A1"> 
     <telecom type="phone" value="4839282992" 
       desc="" default="true" /> 
     <telecom type="fax" value="3232" desc="" /> 
    </address> 
    </company> 
    <person title="Mr." name="Tariq" surname="sheikh" 
      lang="EN" action="create" profile="Profiles\Tariq" 
      login="tariq" password="123456" default_address="A1"> 
    <link reference="C1" type="Employee" description="Software developer" /> 
    <address street="baker street" zip="12443" 
      city="london" country="england" /> 
    <account bank="Barclays" account="4378734834" /> 
    <telecom type="email" value="[email protected]" desc="" /> 
    <registration type="temporaryID" 
        value="4623648c-739e-49c8-93fa-41dc7fed53ea" /> 
    </person> 
</import> 

我是新來的XDocument!

回答

0

當您查找的元素不是當前元素的直接子元素(或XDocument的根元素)時,您必須使用Descendants

string info = doc.Descendants(tag).First().Attribute(attribute).Value; 
+0

非常感謝,我想確認的情況下,我必須去裏面嵌套的標籤,任何級別,我想我將不得不經常做這樣doc.Descendents(一).Descendents(B)。 ...等等 – tariq 2013-03-14 07:50:16