得到XML节点C#

问题描述:

我有这样的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

用于通过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; 

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

检查细节上SelectNodes

你可以测试自己的XPath表达式和完善它,直到你得到你想要的结果,也有大量XPATH测试的网络商店,这里的例子是一个:http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm

只是去那里,从上面粘贴你的xml片段并使用XPATH直到你得到你所需要的。