Xml docx上用于合并相邻元素的XSLT
我有一套MS Word docx格式的采访记录,我想将其转换为我自己的自定义xml模式: 我的word文档中的一段如下所示:Xml docx上用于合并相邻元素的XSLT,xml,xslt,docx,Xml,Xslt,Docx,我有一套MS Word docx格式的采访记录,我想将其转换为我自己的自定义xml模式: 我的word文档中的一段如下所示: <para speaker="jon"> <content>This is my interview.</content> <content emphasis="true">Now I am shouting!</content> <content>Now I am speak
<para speaker="jon">
<content>This is my interview.</content>
<content emphasis="true">Now I am shouting!</content>
<content>Now I am speaking normally again.</content>
</para>
乔恩:这是我的采访。现在我在叫喊,现在我又能正常说话了
在我的自定义模式中,应该如下所示:
<para speaker="jon">
<content>This is my interview.</content>
<content emphasis="true">Now I am shouting!</content>
<content>Now I am speaking normally again.</content>
</para>
这是我的面试。
现在我在喊!
现在我又能正常说话了。
在docxml中,我希望在所有其他情况下将相邻的w:r元素合并到单个元素中
任何帮助都将不胜感激
谢谢
Swami您的示例与您的问题并不完全匹配,但要回答“如何使用xslt合并相邻元素”的问题,请使用示例w:r,并假设“w”名称空间前缀已在范围中声明:
<xsl:template match="w:r[1]">
<w:r>
<xsl:copy-of select="@*|node()" />
<xsl:copy-of select="following-sibling::w:r/node()" />
<!-- assuming you don't care about attributes on adjacent w:r elements -->
</w:r>
</xsl:template>
<xsl:template match="w:r" />
您还可以使用/xslt2分组操作来执行此操作,如果您的案例比这个简单的示例更复杂,您可能需要研究这些操作。这里有完整的代码。感谢MarkLogic博客