Xslt XSL:跟踪切换的元素
以下字符串使用切换在源XML中进行编码,我希望将其更改为包含格式信息的节点。(这是对WordprocessingML的XLIFF。) 文本、粗体文本、粗体和斜体文本、粗体文本、纯文本 源XML:Xslt XSL:跟踪切换的元素,xslt,Xslt,以下字符串使用切换在源XML中进行编码,我希望将其更改为包含格式信息的节点。(这是对WordprocessingML的XLIFF。) 文本、粗体文本、粗体和斜体文本、粗体文本、纯文本 源XML: <text> Text <format id="1" type="bold" /> bold text, <format id="2" type="italics" /> bold and italics text, <endformat id="2"
<text>
Text
<format id="1" type="bold" />
bold text,
<format id="2" type="italics" />
bold and italics text,
<endformat id="2" />
bold text,
<endformat id="1" />
plain text.
</text>
正文
黑体字,
粗体和斜体文本,
黑体字,
纯文本。
我需要:
<run>
<format></format>
<text>Text, </text>
</run>
<run>
<format><b/></format>
<text>bold text, </run>
</run>
<run>
<format><b/><i/></format>
<text>bold and italics text, </run>
</run>
<run>
<format><b/></format>
<text>bold text, </run>
</run>
<run>
<format></format>
<text>plain text.</run>
</run>
文本,
黑体字,
粗体和斜体文本,
黑体字,
纯文本。
如果我使用的是过程语言,我会保留一个运行记录,记录哪些格式化是活动的,并相应地写出
元素
但是如何在XSL中实现呢?因为
text
的子节点是交替的text(),然后是format
,具有对称的endformat
和text()
的,处理两个开始节点和两个结束节点,并通过每次前两个节点和跟踪两个节点来缩短列表。但是我不清楚你的文件的语法,所以这可能是不可能的