如果比较两个xml文件里包含相同内容的节点

sailflying 2004-08-10 05:35:48
A.xml里有个<name>Sail</name>
B.xml里也有个<name>Sail</name>
那么返回true,否则返回false
这个功能怎么作呢??
...全文
163 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanker 2004-08-11
  • 打赏
  • 举报
回复
a.xml:
<names>
<name>Hello1</name>
</names>

b.xml:
<names>
<name>Hello1</name>
</names>

r.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<results>
</results>

test.xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="no" doctype-public="-//W3C//DTD HTML 3.2 Final//EN"/>
<xsl:variable name="name_a" select="document('a.xml')/names" />
<xsl:variable name="name_b" select="document('b.xml')/names" />

<xsl:template match="/">
<xsl:apply-templates select="results">
<xsl:with-param name="name_a" select="$name_a/name" />
<xsl:with-param name="name_b" select="$name_b/name" />
</xsl:apply-templates>
</xsl:template>

<xsl:template match="results">
<xsl:param name="name_a" />
<xsl:param name="name_b" />
<html>
<head><title>A:B</title></head>
<body>
<h4>Result:</h4>
<br />
<xsl:choose>
<xsl:when test="$name_a = $name_b">
true
</xsl:when>
<xsl:otherwise>
false
</xsl:otherwise>
</xsl:choose>
</body>
</html>
</xsl:template>

</xsl:stylesheet>


用IE打开r.xml既可
sailflying 2004-08-11
  • 打赏
  • 举报
回复
比较成功了。但是遇上一个难题
现在document的都是固定xml文件
我需要比较的是两个网页上的两个xml数据,它并不是固定的文件
我改怎么将两个xml数据岛传进去给document呢?
sailflying 2004-08-11
  • 打赏
  • 举报
回复
如果xml里面有好几个<name>值呢?
我用你写的好像只能比较第一个
我怎么改也不会每个都去比较 ^_^!!

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧