使用 xquery 比较 XML

标签 xml xslt xquery

我是 XSLT/Xquery 的新手,想比较两个 xml 文件(数据内容,可以忽略空格和注释)并打印第二个 xml 的更改节点。据我所知(用谷歌搜索)我相信它可以使用 Xquery 来完成。我的 xml 将如下所示。

<ns:Batch xmlns:ns="http://www.sample.com/">
<ns:Product>
    <ns:productId>AB02921</ns:productId>
    <ns:type>Product</ns:type>
    <ns:productDescription>
        <ns0:string xmlns:ns0="http://www.sample.com/core" country="US" language="en">EVE BOOTCUT JEAN</ns0:string>
    </ns:productDescription>
    <ns:productLongDescription>
        <ns0:string xmlns:ns0="http://www.sample.com/core" country="US" language="en">For perennial cool with an uber comfortable tw...</ns0:string>
    </ns:productLongDescription>
    <ns:posDetails>
        <ns:isTemplate>false</ns:isTemplate>
    </ns:posDetails>
    <ns:isTemplate>false</ns:isTemplate>
    <ns:lastUpdated>2011-09-07T16:52:50.573</ns:lastUpdated>
    <ns:exportDetails>
        <ns:isTemplate>false</ns:isTemplate>
    </ns:exportDetails>
    <ns:mmGroupId groupTypeId="mmGroup" groupHierarchyId="ABC" variantGroupTypeId="region" variantGroupId="All" variantGroupHierarchyId="All">JSBFO</ns:mmGroupId>
    <ns:inventoryDetails>
        <ns:isTemplate>false</ns:isTemplate>
    </ns:inventoryDetails>
    <ns:productDimensions>
        <ns:isTemplate>false</ns:isTemplate>
    </ns:productDimensions>
    <ns:warrantyDetails>
        <ns:isTemplate>false</ns:isTemplate>
    </ns:warrantyDetails>
    <ns:standardCostPrice>0.0</ns:standardCostPrice>
    <ns:standardMargin>0.0</ns:standardMargin>
    <ns:colourId colourRangeId="Default">6007</ns:colourId>
    <ns:sizeId sizeRangeId="Default">14</ns:sizeId>
    <ns:styleId>AB029</ns:styleId>
</ns:Product>

我需要与所有这些重复节点进行比较,以返回该节点内的更改节点。请求所有人帮助我。 问候, 斯里兰卡。

最佳答案

比较两个 XML 文档是一项具有挑战性的任务,部分原因是通常要求这样做的人对问题没有很好的定义,实际上并不知道他们到底在问什么为。

这就是说,试试这个标准的 XPath 2.0 函数:

deep-equal()

关于使用 xquery 比较 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8414952/

相关文章:

Android xml 错误 : "No resource found that matches the given name" with RelativeLayout (@id/LinearLayout_acc, @id/ProgressBar_statusScreen)

java - 安卓 : xml won't update runtime no matter what changes

c# - 具有自定义格式的 XML 编写器

xml - Safari XSLT 引擎在属性上丢失命名空间

xslt - 复杂的 XSLT 分割?

xml - fn :count give me 1's instead of the total count() number

xquery - 返回具有计算属性的计算元素

java - 如何在 LinearLayout 类中膨胀 Android View?

XSLT 按半小时分组

java - 如何从一组 XPath 表达式生成 XML 文件?