获取xml子节点值

时间:2016-06-09 07:10:39

标签: c# xml linq dynamic foreach

我的xml看起来像这样

<customlocation>
    <path>xxxxx</path>
    <filetype>xxxxx</filetype>
    <filetype>xxxxx</filetype>
    <filetype>xxxxx</filetype>
                .
                .
                .
    <filename>xxxxx</filename>
    <filename>xxxxx</filename>
    <filename>xxxxx</filename>
                .
                .
                .
    <delete>xxxxx</delete>
</customlocation>
<customlocation>
    <path>xxxxx</path>
    <filetype>xxxxx</filetype>
    <filetype>xxxxx</filetype>
    <filetype>xxxxx</filetype>
                .
                .
                .
    <filename>xxxxx</filename>
    <filename>xxxxx</filename>
    <filename>xxxxx</filename>
                .
                .
                .
    <delete>xxxxx</delete>
</customlocation>
                .
                .

您可以拥有任意数量的自定义标记 - 动态 - 我可以像这样轻松获取这些标签:

            XElement doc = XElement.Load(xmlFilePath);
            foreach(XElement elm in doc.Descendants().Elements("customlocation"))
        {

但问题是如何在这里搜索文件类型和文件名标签我长时间搜索这个但是直到现在都没有运气所以请帮忙 谢谢alraedy

2 个答案:

答案 0 :(得分:0)

试试这个

List<string> Values = new List<string>();    
XDocument doc = XDocument.Load(Server.MapPath("Server.xml"));
foreach(XElement elm in doc.Descendants().Elements("customlocation"))
{
  foreach (XElement ele in elm.Elements("filetype"))
  {
    Values.Add(ele.Value);
  }
}

答案 1 :(得分:0)

repository.findBy(blogs => blogs.someTypes, blogs => blogs.Posts).select() 只找到那些直接后代的元素,Elements找到任何级别的孩子(即儿童,大孩子)

由于你想构建一个Descendantsfiletpe的数组,你可以这样做。

filename

选中此Demo