2011-08-29 63 views
0

我有一组在MS Word的docx格式的访谈记录,我要转换为自己的自定义XML模式:XSLT上的docx用于合并相邻元素

在我的Word文档的段落是这样的:

Jon:这是我的采访。 现在我正在大喊现在我又正常说话了。

,并在我的自定义模式应该是这样的:

<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> 

在DOCX XML,我想相邻宽:r个元素在所有其他情况下被合并成一个单一的元素。

任何帮助将不胜感激。

感谢

斯瓦米

回答

0

您的例子并不真正符合您的问题,但回答这个问题:“如何合并相邻元素瓦特/ XSLT”,使用例如宽: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分组操作,您可能想看看如果你的情况比这个简单的例子更加复杂。