xml - 定义 xml 的相等性

标签 xml haskell

是否有一种方法可以在 Xml 语句上定义相等性,以使这三个语句相同(忽略空格、参数和标签顺序)?

1:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com</groupId>
  <url>http://maven.apache.org</url>
</project>

2:

<project>
  <modelVersion>4.0.0</modelVersion>
  <url>http://maven.apache.org</url>
  <groupId>com</groupId>
</project>

3:

<project>
    <modelVersion>4.0.0</modelVersion>
    <url>http://maven.apache.org</url>
    <groupId>com</groupId>
</project>

例如,xml没有帮助,因为 Content 上没有 Eq 实例.

此外,xml-conduit也不可用,因为 Element包含List中的所有节点元素。它对空格也很敏感。

有许多库可以使用 xml,包括 HXT,但很难找到可用的库。

最佳答案

将 XML 解析为类似于以下的结构:

data Tree = TreeNode (Set Tree) | LeafNode String deriving Eq

这将问题简化为集合和字符串上的相等。

关于xml - 定义 xml 的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12271777/

相关文章:

iphone - IOS rss 订阅登录

android - 从 XML 资源文件中获取所有字符串资源?

python - 在 etree 上使用 iterdescendants() 时,可以修改树吗?

Java Xpath 表达式

haskell - 访问自定义 Haskell 数据类型的函数

haskell - 为什么 (a, a) 不是仿函数?

haskell - ST monad 声明的语法

Haskell + StablePtr

haskell - 为什么程序在 runghc 或分析中会更快?

java - 将 CatalogResolver 与 StAX 结合使用