繁体   English   中英

比较两个XML字符串

[英]Compare two XML strings

给定以下示例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 => title:本杰明·富兰克林自传| 在这里更改
  • book1 =>价格:8.90 | 10.90
  • book2 =>出版日期:1967-11-17 | 2050年11月17日

我该怎么办。 除了字符串比较,还有其他想法吗? 我尝试使用XML Diff,但它返回XML文档,但没有有关节点名称的信息。

高层次的概念是这样的:

  1. 创建一个实现INotifyPropertyChanged接口的Book类
  2. 将您的xml文件解析为IEnumerble您的案例字典<int,Book>(int是id)
  3. 当书籍属性发生变化时,您可以直接访问哪个道具更改了哪本书,并对更改后的书籍进行任何操作,例如添加到新的字典中

许多很好的例子,包括 msdn: http : //msdn.microsoft.com/zh-CN/library/system.componentmodel.inotifypropertychanged( v=vs.110) .aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM