0
我有一个XML 1.0文档,需要使用XSLT 1.0文件进行转换。我需要转换XML看起来是这样的:使用XSLT 1.0在XML列表中插入元素
<commandBarData guid="f3016f3c-2847-4557-b61a-a2d05319cf18">
<menubar>
<modeData guid="76d73481-9076-44c9-821c-52de9408cce2">
<item guidRef="0f948c18-f326-40e5-9beb-2efc73803797"/>
<item guidRef="6c91d5ab-d648-4364-96fb-3e71bcfaf70d"/>
<item guidRef="71f8ffd6-46bd-43a3-8256-5412bc2d7741"/>
<item guidRef="ac291790-gf51-d4s1-f23x-dsf9dfb6fgf5"/>
</modeData>
</menubar>
</commandBarData>
我需要的元素<item guidRef="0f948c18-f326-40e5-9beb-2efc73803797"/>
之后插入<item guidRef="21c1f231-e03e-48e8-916a-d8790442b417"/>
所以名单看起来就像这样:
<commandBarData guid="f3016f3c-2847-4557-b61a-a2d05319cf18">
<menubar>
<modeData guid="76d73481-9076-44c9-821c-52de9408cce2">
<item guidRef="0f948c18-f326-40e5-9beb-2efc73803797"/>
<item guidRef="21c1f231-e03e-48e8-916a-d8790442b417"/>
<item guidRef="6c91d5ab-d648-4364-96fb-3e71bcfaf70d"/>
<item guidRef="71f8ffd6-46bd-43a3-8256-5412bc2d7741"/>
<item guidRef="ac291790-gf51-d4s1-f23x-dsf9dfb6fgf5"/>
</modeData>
</menubar>
</commandBarData>
如何做到这一点使用XSLT 1.0?
我已经做了几次尝试,现在我的代码主要工作。剩下的一个问题是如何在后面插入元素。下面的代码工作除了...
<xsl:template match="uiConfig/commandBars">
<xsl:copy>
<xsl:apply-templates select = "node()|@*" />
</xsl:copy>
</xsl:template>
<xsl:template
匹配= “uiConfig /命令栏/ commandBarData /菜单栏/ modeData /项目[@ guidRef = '0f948c18-f326-40e5-9beb-2efc73803797']”>
它生成此XML:
<item guidRef="0f948c18-f326-40e5-9beb-2efc73803797"><item guidRef="21c1f231-e03e-48e8-916a-d8790442b417" xmlns:frmwrk="Corel Framework Data" /></item>
<item guidRef="21c1f231-e03e-48e8-916a-d8790442b417" />
<item guidRef="6c91d5ab-d648-4364-96fb-3e71bcfaf70d" />
<item guidRef="71f8ffd6-46bd-43a3-8256-5412bc2d7741" />
<item guidRef="ac291790-gf51-d4s1-f23x-dsf9dfb6fgf5" />
我如何使它的元素之后追加,而不是插入的孩子?
确切位置在哪里,你坚持了吗?发布您的尝试,以便我们可以修复它,而不必从头开始为您编写代码。 –
@ michael.hor257k通常,我会这样做。到目前为止,我的问题是我对xslt很不熟悉,所以到目前为止我的尝试都是基于甚至不接近的。无论如何,我会添加它们。 –
如果您需要一个起始点,请从[标识转换](https://www.w3.org/TR/xslt#copying)开始,然后添加另一个与[item] [@ guidRef ='0f948c18-f326- 40e5-9beb-2efc73803797' ]'。该模板应该复制当前的'item'并且创建新的'item'。 –