【问题标题】:Compare two XML strings比较两个 XML 字符串
【发布时间】:2014-03-07 12:01:36
【问题描述】:

给定以下示例 xml 字符串:

<bookstore xmlns="http://www.contoso.com/books">
  <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.90</price>
  </book>
  <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>15.11</price>
  </book>
</bookstore>

如果我这样改:

<bookstore xmlns="http://www.contoso.com/books">
  <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
    <title>CHANGE HERE1</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>10.90</price>
  </book>
  <book genre="novel" publicationdate="2050-11-17" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>15.11</price>
  </book>
</bookstore>

我想获取包含我的更改的字典,即:

=> 旧值,新值

  • book1 => 标题:本杰明·富兰克林自传 |在此处更改1
  • book1 => 价格:8.90 | 10.90
  • book2 => 出版日期:1967-11-17 | 2050-11-17

我会怎么做。除了进行字符串比较之外还有什么想法吗? 我尝试使用XML Diff,但它返回一个 XML 文档并且没有关于节点名称的信息。

【问题讨论】:

  • 能分享一下你试过的代码吗?

标签: c# asp.net


【解决方案1】:

高级概念是这样的:

  1. 创建一个实现INotifyPropertyChanged接口的Book类
  2. 将您的 xml 文件解析为 IEnumerble 您的案例字典(int 用于 id)
  3. 当一本书的属性发生变化时,您可以简单地访问哪本书哪个道具发生了变化,然后对更改后的书籍做任何您想做的事情,例如添加到新词典中

那里有很多很好的例子,包括。微博: http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v=vs.110).aspx

【讨论】:

    猜你喜欢
    • 2020-09-05
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    相关资源
    最近更新 更多