2010-10-12 32 views
0

我有以下XML文檔LinqXML過濾器 - 初學者

<Documents Databasename="Type1"> 
<Document> 
    <Documentnumber>xxxxxx</Documentnumber> 
    <Documentname>xxxxxx</Documentname> 
    <DocumentExtension>xxxxxx</DocumentExtension> 
    <ImportAction>xxxxxx</ImportAction> 
    <Authorname>xxxxxx</Authorname> 
    <Practicegroup>xxxxxx</Practicegroup> 
    <Createddate>xxxxxx</Createddate> 
    <Createdby>xxxxxx</Createdby> 
    <Modifieddate>xxxxxx</Modifieddate> 
    <Modifiedby>xxxxxx</Modifiedby> 
    <Lastaccessddate>xxxxxx</Lastaccessddate> 
    <Comments /> 
    <Sector>Unknown</Sector> 
    <Source>Unknown</Source> 
    <Quality>Unknown</Quality> 
    <KnowHowContentType>Unknown</KnowHowContentType> 
    <ActualAutors /> 
    <SubmittedBy /> 
    <NumberofAccess>0</NumberofAccess> 
    <AreasofLaw /> 
</Document> 
<Document> 
    <Documentnumber>xxxxxx</Documentnumber> 
    <Documentname>xxxxxx</Documentname> 
    <DocumentExtension>xxxxxx</DocumentExtension> 
    <ImportAction>xxxxxx</ImportAction> 
    <Authorname>xxxxxx</Authorname> 
    <Practicegroup>xxxxxx</Practicegroup> 
    <Createddate>xxxxxx</Createddate> 
    <Createdby>xxxxxx</Createdby> 
    <Modifieddate>xxxxxx</Modifieddate> 
    <Modifiedby>xxxxxx</Modifiedby> 
    <Lastaccessddate>xxxxxx</Lastaccessddate> 
    <Comments /> 
    <Sector>Unknown</Sector> 
    <Source>Unknown</Source> 
    <Quality>Unknown</Quality> 
    <KnowHowContentType>Unknown</KnowHowContentType> 
    <ActualAutors /> 
    <SubmittedBy /> 
    <NumberofAccess>0</NumberofAccess> 
    <AreasofLaw /> 
</Document> 

XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX 未知 未知 未知 未知 XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX XXXXXX 未知 未知 未知 未知

我想選擇DocumentNumber,DocumentExtension給定屬性數據庫名稱。如果我解釋我的自我,請告訴我。

回答

1

我沒有使用LINQ到XML方面,所以這可能不是最好的方式,但它似乎工作:

string xml = @" 
<root> 
    <Documents Databasename='Type1'> 
    <Document> 
     <Documentnumber>1234</Documentnumber>"; 
     // etc.. 

XDocument xmlDoc = XDocument.Parse(xml); 

var output = from item in xmlDoc.Descendants() 
      where item.Name == "Document" 
      && item.Parent.Attribute("Databasename").Value == "Type1" 
      select new { Number = (string)item.Element("Documentnumber").Value, 
          Extension = item.Element("DocumentExtension").Value 
      }; 

foreach (var item in output) { 
    Console.WriteLine(item); 
} 

注意,我增加了一個額外的「根」元素的XML做這個工作(假設多個'文檔'元素)。

+0

完美。謝謝格蘭特感謝你對此的幫助。 – meetkichu 2010-10-13 08:28:05