繁体   English   中英

从C#中的xml获取节点

[英]get node from xml in c#

我有一个xml文件,例如:

<?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获取所有节点。

可以给我一种方法吗?

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

检查有关SelectNodes的详细信息

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

 // 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;

您可以测试自己的xpath表达式并对其进行优化,直到获得所需的结果为止,在线上有很多XPATH测试仪,例如,这里是一个: http : //www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm

只需去那里,从上面粘贴xml片段,然后使用XPATH,直到获得所需的东西即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM