gpt4 book ai didi

java - 'HIERARCHY_REQUEST_ERR : An attempt was made to insert a node where it is not permitted. |当我复制 set:distinct 的结果时

转载 作者:行者123 更新时间:2023-12-01 15:08:30 31 4
gpt4 key购买 nike

我尝试转换(在 Eclipse 中)下面的文档:

<doc>
<city name="Paris"
country="France" />
<city name="Madrid"
country="Spain" />
<city name="Vienna"
country="Austria" />
<city name="Barcelona"
country="Spain" />
<city name="Salzburg"
country="Austria" />
<city name="Bonn"
country="Germany" />
<city name="Lyon"
country="France" />
<city name="Hannover"
country="Germany" />
<city name="Calais"
country="France" />
<city name="Berlin"
country="Germany" />
</doc>

使用 xslt:

<xsl:template match="/">
<out>
<all-countries>
<xsl:copy-of select="//city" />
</all-countries>
<distinct-countries>
<xsl:copy-of select="set:distinct(//@country/..)" />
</distinct-countries>
</out>
</xsl:template>

我使用Xalan 2.7.1它工作正常,但是当我使用'JRE实例默认'处理器时我收到错误:

16:07:20,642 ERROR [main] Main  - java.lang.RuntimeException: Run-time internal error in 'HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted. '

最佳答案

这是猜测,但也许您可以尝试其他方法来获取不同的值。这里有两个建议,都是XSLT2.0的解决方案:

<distinct-countries>
<xsl:copy-of select="distinct-values(//@country)" />
</distinct-countries>

<xsl:for-each-group select="//city" group-by="@country">
<xsl:value-of select="current-grouping-key()" />
</xsl:for-each-group>

如果您使用的是 XSLT1.0,那么在不使用扩展函数的情况下执行此操作的方法是使用一种称为 Muenchian Grouping 的技术。首先定义一个键,用于按国家属性对城市元素进行“分组”。

<xsl:key name="countries" match="city" use="@country" />

然后,您可以通过选择每组中出现的第一个城市元素来挑选不同的国家/地区。

<distinct-countries> 
<xsl:for-each select="//city[generate-id() = generate-id(key('countries', @country)[1])]">
<xsl:value-of select="@country" />
</xsl:for-each>
</distinct-countries>

关于java - 'HIERARCHY_REQUEST_ERR : An attempt was made to insert a node where it is not permitted. |当我复制 set:distinct 的结果时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12640039/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com