【问题标题】:Comparing parsed XML with a string将解析的 XML 与字符串进行比较
【发布时间】:2017-06-05 23:53:12
【问题描述】:

我正在开发一个将接收 XML 字符串并与 internalName 字符串进行比较的 Web 服务。我正在使用 LINQ 解析 XML(并且我认为我做对了),但我不确定如何比较内部名称中的“值”,例如。

    [WebMethod]
    public string WMCompare (string xml, string internalName)
    {
        XDocument xmlDoc = XDocument.Load(xml);

        var result = from ele in xmlDoc.Descendants("property")
                     select new
                     {
                         key = (string)ele.Element("key"),
                         value = (string)ele.Element("value")
                     };
        foreach (var i in result)
        {
        }
    }
}

感谢您的关注,对于新手问题,我深表歉意。这是我第一次使用 XML。

【问题讨论】:

  • 创建一个将 xml 绑定到的模型是否具有挑战性?然后,您可以将 XML 反序列化为对象并轻松访问它的所有属性。
  • 您想与“internalName”比较哪个节点/属性值?是“关键”还是“价值”?

标签: c# xml linq parsing linq-to-xml


【解决方案1】:

考虑到您正在将字符串与值进行比较:

var newResult = result.Where(r => r.value.Equals(internalName))

或者,您也可以在解析 XML 时进行比较:

var result1 = from ele in doc.Descendants("property")
              where ele.HasElements && ele.Element("value") != null && ele.Element("value").Equals(internalName)
              select new
              {
                  key = (string)ele.Element("key"),
                  value = (string)ele.Element("value")
              };

【讨论】:

    猜你喜欢
    • 2022-11-13
    • 2020-03-28
    • 2012-10-06
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多