这种转变:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:w="w:w">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:key name="kinBetween" match="w:r"
use="concat(generate-id(preceding-sibling::w:r[w:instrText][1]),
'+',
generate-id(following-sibling::w:r
[w:fldChar/@w:fldCharType='end'])
)
"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*">
<t>
<xsl:apply-templates select=
"key('kinBetween',
concat(generate-id(w:r[w:instrText][1]),
'+',
generate-id(w:r[w:fldChar/@w:fldCharType='end'][1])
)
)
"/>
</t>
</xsl:template>
</xsl:stylesheet>
当在所提供的输入施加(校正为一个良好的XML文档):
<t xmlns:w="w:w">
<w:r w:rsidRPr="00ED1487" >
<w:rPr>
<w:i/>
<w:color w:val="E36C0A" w:themeColor="accent6" w:themeShade="BF"/>
</w:rPr>
<w:instrText xml:space="preserve"> DATE \@ "dddd, MMMM dd, yyyy" \* MERGEFORMAT </w:instrText>
</w:r>
<w:r w:rsidRPr="00ED1487">
<w:rPr>
<w:i/>
<w:color w:val="E36C0A" w:themeColor="accent6" w:themeShade="BF"/>
</w:rPr>
<w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r w:rsidRPr="00ED1487">
<w:rPr>
<w:i/>
<w:noProof/>
<w:color w:val="E36C0A" w:themeColor="accent6" w:themeShade="BF"/>
</w:rPr>
<w:t>Wednesday</w:t>
</w:r>
<w:r>
<w:rPr>
<w:noProof/>
</w:rPr>
<w:t>, February 02, 2011</w:t>
</w:r>
<w:r>
<w:fldChar w:fldCharType="end"/>
</w:r>
</t>
个过程(与如已经不需要特定的加工身份模板)所要求的时间间隔内完全节点,并产生想要的,正确的结果:
<t xmlns:w="w:w">
<w:r w:rsidRPr="00ED1487">
<w:rPr>
<w:i/>
<w:color w:val="E36C0A" w:themeColor="accent6" w:themeShade="BF"/>
</w:rPr>
<w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r w:rsidRPr="00ED1487">
<w:rPr>
<w:i/>
<w:noProof/>
<w:color w:val="E36C0A" w:themeColor="accent6" w:themeShade="BF"/>
</w:rPr>
<w:t>Wednesday</w:t>
</w:r>
<w:r>
<w:rPr>
<w:noProof/>
</w:rPr>
<w:t>, February 02, 2011</w:t>
</w:r>
</t>
说明:命名kinBetween
关键是定义和使用以确定两个w:r
元素之间的所有w:r
元素,并具有start-interval-element和end-interval-element所需的属性。
您将需要提供比这更多的细节 - 您想要将上述XML转换为什么?你想在你已经突出显示的位置插入什么?你需要复制文件并添加额外的信息吗? – ColinE 2011-02-02 08:24:31