Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml docx上用于合并相邻元素的XSLT_Xml_Xslt_Docx - Fatal编程技术网

Xml docx上用于合并相邻元素的XSLT

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

我有一套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 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博客