【问题标题】:How to iterate XML-formatted string through "foreach" loop in C#?如何通过 C# 中的“foreach”循环迭代 XML 格式的字符串?
【发布时间】:2015-10-13 17:38:39
【问题描述】:

我有 XML 格式的字符串,内容如下:

<?xml version="1.0" encoding="Windows-1251" ?>
<Operation>
<PersonOperation>
    <Name>John Smith</Name>
    <Phone>79161234586</Phone>
    <City>Glasgow</City>    
    <Date>2014-02-03</Date>
    <OperationType>Join</OperationType>
    <Amount>9000.00</Amount>
</PersonOperation>
<PersonOperation>
    <Name>Bill Satly</Name>
    <Phone>78263211334</Phone>
    <City>London</City>
    <Date>2014-07-10</Date>
    <OperationType>Stock</OperationType>
    <Amount>3000.00</Amount>
</PersonOperation>

如何在 C# 中通过“foreach”循环迭代该字符串并检查 OperationType 节点的值是否等于“Join”?

【问题讨论】:

  • 嗯,显而易见的答案是通过 XML API 加载它,例如LINQ to XML,那么你真的可以很容易地查询它。你有什么不想这样做的理由吗?
  • 昨天,您无法创建此 xml。现在看不懂了?
  • 我已经为今天早上创建了它。

标签: c# xml string foreach


【解决方案1】:

您可以使用 LinqToXml 查询来完成,如下所示:

  var result = document.Root.Elements()
                       .Where(b => b.Element("OperationType").Value == "Join");

【讨论】:

    【解决方案2】:

    将字符串加载到 XmlDocument 中并使用 SelectNodes() 方法和适当的 XPath 查询。

    要迭代的查询:

    “操作/人员操作”

    【讨论】:

    • 调用 SelectNodes 产生 XPathException
    • @user3769902 你是怎么试的?使用您尝试过的代码更新您的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 2016-07-29
    • 1970-01-01
    • 2013-06-05
    • 2012-12-31
    • 1970-01-01
    • 2021-03-29
    相关资源
    最近更新 更多