我正面临以下XSL转换的情况。XSL,标记之间的匹配元素
我有这样的:
<content>
xml_and_text_0
<break/>
xml_and_text_1
<break/>
...
<break/>
xml_and_text_n
</content>
我想使用XSL 2.0把上面的XML到这一点:
<content>
<block>
xml_and_text_0
</block>
<block>
xml_and_text_1
</block>
...
<block>
xml_and_text_n
</block>
</content>
(我也想some_xml_and_text_k忽略= '',但现在让我们假设它们是非空的)
我在想我可以使用类似于[XPath : select all following siblings until another sibling的方法,但也许有一个更简单的方法(或更简单的XPath表达式)。例如,是否有可能在for-each循环中匹配当前项目之后/之前的所有同胞?
编辑:注意xml_and_text_i是文本和XML的混合,类似于XHTML,我想内包装,所以像:
<break/>
this is an <ref id = "123">example</ref>, which is really <citation>awesome</citation>
<break/>
将成为:
<block>this is an <ref id = "123">example</ref>, which is really <citation>awesome</citation></block>
我不这么认为。我需要每块 有一个新块,并且xml_and_text_i包含xml和文本,我想要在内复制该文本。更确切地说,它包含一段标记语言的段落,类似于xhtml,因此您可以阅读如下内容:“这是一个示例,这真的是真棒 ”。 –
zakmck
@zakmck请编辑您的问题,并显示上述样式表无法正确处理的示例输入。同时说明如果使用XSLT 1.0或2.0。 –
在这个例子中: ' 某些文本 ,这是一示例,这是非常真棒 一些其他文本 ' 你的XSL收率: ' 一些文本 这是一个 ,这是非常 一些其他文本 ' 但我期望: ' \t 某些文本 \t ,这是一示例 ,这真的是真棒 \t 其他一些文字 ' –
zakmck