2011-02-08 63 views
2

我有这样的XML文件:得到XML节点C#

<?xml version="1.0" encoding="utf-8"?> 
<Config> 
    <MetadataFormConfig FieldInternalName="Test"> 
     <Tabs> 
     <Tab Title="A to C" Order="1"> 
      <ShowParentTerm>A</ShowParentTerm> 
      <ShowParentTerm>B</ShowParentTerm> 
      <ShowParentTerm>C</ShowParentTerm> 
     </Tab> 
     <Tab Title="D to E" Order="2"> 
      <ShowParentTerm>D</ShowParentTerm> 
      <ShowParentTerm>E</ShowParentTerm> 
     </Tab> 
     </Tabs> 
    </MetadataFormConfig> 
</Config> 

我想通过FieldInternalName所有节点。

请给我一个方法,我可以做到这一点?

+2

作为输出你期望什么?一个`XmlNode`对象列表?字符串列表?什么?? – 2011-02-08 11:22:44

+0

我想要整个制表符属性。然后我需要得到值A,B,C。 – 2011-02-08 11:25:25

回答

1

用于通过FieldInternalName获取所有节点的Linq版本。

// Loading from a file, you can also load from a stream 
     XDocument loaded = XDocument.Load(@"d:\test.xml"); 
     // Query the data 
     var query = from c in loaded.Descendants("MetadataFormConfig") 
       where (string)c.Attribute("FieldInternalName") == "Test" 
       select c; 
3

您可以使用SelectNodes("/Config/MetadataFormConfig[@FieldInternalName='Test']")

检查细节上SelectNodes