我正在使用以下格式的XML。
示例XML:
{
<message>
<parent1>
<child>A</child>
<child>B</child>
<child>C</child>
</parent1>
<parent2>
<child>A</child>
<child>B</child>
<child>B</child>
</parent2>
</message>
}
期望的输出:
例外:父2包含重复的孩子。
请帮我编写XSLT代码以对XML进行验证。
更新
这是我到目前为止所做的:
<xsl:stylesheet version="1.0"
xmlns:xsl="w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="no"/>
<xsl:template match="parent">
<xsl:copy-of select="*" />
<xsl:for-each select="child">
<xsl:variable name="node_child" select="text()"/>
<xsl:variable name="numEntries"
select="count(../child[text()=$node_child])"/>
<xsl:if test="$numEntries > 1">
<xsl:text>Child value of </xsl:text>
<xsl:text> has multiple entries 
</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:0)
<xsl:template match="child
[some $s in preceding-sibling::*
satisfies deep-equal(., $s)]">
<xsl:message terminate="yes"
>Dying: duplicate element <xsl:copy-of select="."/>
</