选择具有特定值的子节点

阿尼尔·库玛(Anil Kumar)

我想在插入之前检查xml文件中特定“ <用户Id =“ any”>具有特定ID”下的“具有特定值(例如Pathankot)”的“ <city>”节点是否已经存在将新的城市节点插入xml。

< users> 
     < user Id="4/28/2015 11:29:44 PM"> 
          <city>Fazilka</city> 
          <city>Pathankot </city> 
          <city>Jalandher</city> 
          <city>Amritsar</city> 
     </user> 
</users> 

为了插入,我正在使用以下c#代码

 XDocument xmlDocument = XDocument.Load(@"C:\Users\Ajax\Documents\UserSelectedCity.xml");
        string usrCookieId = Request.Cookies["CookieId"].Value;
xmlDocument.Element("Users")
            .Elements("user")
.Single(x => (string)x.Attribute("Id") == usrCookieId)
             //Incomplete because same named cities can be entered more that once 
             //need to make delete function
            .Add(
            new XElement("city", drpWhereToGo.SelectedValue));

我的问题:

  • 如何在插入新的城市节点之前,检查具有特定值的<city>节点的天气,说xml文件中已经存在Pathankot。
  • 我正在使用“中的绝对路径”,这不允许我在不更改路径的情况下将文件移动到新文件夹。但是,如果我使用相对路径,则错误发生“访问被拒绝”。 XDocument xmlDocument =
    XDocument.Load(@"C:\Users\Ajax\Documents\Visual Studio
    2012\WebSites\punjabtourism.com\UserSelectedCity.xml");"


拉胡尔·辛格(Rahul Singh)

试试这个:-

首先,XDocument通过指定XML文件所在的物理路径将XML文件加载到对象中。一旦有了对象,就取First具有匹配条件节点(请注意,我使用的是First而不是Single cz,您可能有多个具有相同匹配条件的节点,请参见Single和First的区别

XDocument xmlDocument = XDocument.Load(@"YourPhysicalPath");
xmlDocument.Descendants("user").First(x => (string)x.Attribute("Id") == "1"
                   && x.Elements("city").Any(z => z.Value.Trim() == "Pathankot"))
                 .Add(new XElement("city", drpWhereToGo.SelectedValue));
xmlDocument.Save("YourPhysicalPath");

最后,将所需的城市添加到从查询中检索到的节点并保存XDocument对象。

更新:

如果您想先检查所有条件是否都满足,则可以Any这样简单地使用:-

bool isCityPresent = xdoc.Descendants("user").Any(x => (string)x.Attribute("Id") == "1"
                  && x.Elements("city").Any(z => z.Value.Trim() == "Pathankot"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何选择具有特定节点作为子节点的第一个在前兄弟姐妹?

来自分类Dev

仅输出文本,没有子节点具有特定值

来自分类Dev

如何从XDocument中选择具有特定属性值的特定节点?

来自分类Dev

XPath-选择一个名称相同的所有子节点本身都具有特定子节点的节点

来自分类Dev

选择具有特定值的节点

来自分类Dev

检查最后一个(或第一个)节点的子节点是否具有特定值

来自分类Dev

在Coldfusion中选择具有特定xmlText和属性值的xml节点

来自分类Dev

为特定属性选择具有最高值的所有节点

来自分类Dev

使用python 2.7和XML元素树在XML中选择具有特定元素值的节点

来自分类Dev

如何找到具有特定值的子元素并删除其直接父节点?

来自分类Dev

如果另一个元素具有特定值,请选择所有节点

来自分类Dev

使用C#在XML中选择具有特定名称的子节点

来自分类Dev

在python中解析XML:假设子节点具有特定属性,则选择一个属性

来自分类Dev

熊猫-选择具有特定值的列

来自分类Dev

如何从XDocument中选择具有特定属性值的特定节点?

来自分类Dev

XPath-选择一个名称相同的所有子节点本身都具有特定子节点的节点

来自分类Dev

选择具有特定行号值的行

来自分类Dev

删除xml文件中具有特定值的子节点

来自分类Dev

选择具有特定值的节点

来自分类Dev

选择子行中的列具有特定值的行?

来自分类Dev

在Coldfusion中选择具有特定xmlText和属性值的xml节点

来自分类Dev

为特定属性选择具有最高值的所有节点

来自分类Dev

jQuery XML解析:选择包含具有特定值的特定标签的所有节点

来自分类Dev

如何找到具有特定值的子元素并删除其直接父节点?

来自分类Dev

选择具有特定值的子节点

来自分类Dev

XPath选择没有特定值的子节点的XML节点?

来自分类Dev

创建具有特定父节点值及其 XML 的所有子节点值的 Map

来自分类Dev

获取具有特定节点属性值的最新节点

来自分类Dev

循环遍历具有用户 ID 的 firebase 节点,以显示特定的子节点并将值存储在数组中

Related 相关文章

  1. 1

    如何选择具有特定节点作为子节点的第一个在前兄弟姐妹?

  2. 2

    仅输出文本,没有子节点具有特定值

  3. 3

    如何从XDocument中选择具有特定属性值的特定节点?

  4. 4

    XPath-选择一个名称相同的所有子节点本身都具有特定子节点的节点

  5. 5

    选择具有特定值的节点

  6. 6

    检查最后一个(或第一个)节点的子节点是否具有特定值

  7. 7

    在Coldfusion中选择具有特定xmlText和属性值的xml节点

  8. 8

    为特定属性选择具有最高值的所有节点

  9. 9

    使用python 2.7和XML元素树在XML中选择具有特定元素值的节点

  10. 10

    如何找到具有特定值的子元素并删除其直接父节点?

  11. 11

    如果另一个元素具有特定值,请选择所有节点

  12. 12

    使用C#在XML中选择具有特定名称的子节点

  13. 13

    在python中解析XML:假设子节点具有特定属性,则选择一个属性

  14. 14

    熊猫-选择具有特定值的列

  15. 15

    如何从XDocument中选择具有特定属性值的特定节点?

  16. 16

    XPath-选择一个名称相同的所有子节点本身都具有特定子节点的节点

  17. 17

    选择具有特定行号值的行

  18. 18

    删除xml文件中具有特定值的子节点

  19. 19

    选择具有特定值的节点

  20. 20

    选择子行中的列具有特定值的行?

  21. 21

    在Coldfusion中选择具有特定xmlText和属性值的xml节点

  22. 22

    为特定属性选择具有最高值的所有节点

  23. 23

    jQuery XML解析:选择包含具有特定值的特定标签的所有节点

  24. 24

    如何找到具有特定值的子元素并删除其直接父节点?

  25. 25

    选择具有特定值的子节点

  26. 26

    XPath选择没有特定值的子节点的XML节点?

  27. 27

    创建具有特定父节点值及其 XML 的所有子节点值的 Map

  28. 28

    获取具有特定节点属性值的最新节点

  29. 29

    循环遍历具有用户 ID 的 firebase 节点,以显示特定的子节点并将值存储在数组中

热门标签

归档