【发布时间】:2020-09-02 10:38:21
【问题描述】:
我有以下 XML
<run>
<font style="bold"/>Some Wording
</run>
我想把它改成
<p>
<b>Some Wording</b>
</p>
我正在尝试这个模板
<xsl:template match="run/font[@style='bold']">
<p>
<b>
<xsl:value-of select="."/>
</b>
</p>
</xsl:template>
但这给出了输出
<p>
<b/>Some Wording
</p>
如何使用 XSLT 将 <b> 标记中的措辞换行?
【问题讨论】:
-
输出正确。
<font>标签没有内容,因此您的<b>标签也是如此。文本Some wording不是<font>标记的子标记,因此没有理由将其加粗。 -
是的,我知道它是正确的,但它不是我想要的。措辞是
<run>标记的子项,但我只想在措辞前面有<font style="bold">标记时应用<b>标记。 -
看不出你能做到。你的输入文件很奇怪。你应该用粗体元素包裹你的文本。
-
你能做一个 if 检查,看看一个亲戚是否如你所愿,如果是的话,用所选的标签包装?
-
如果它是正确的,你为什么要改变它?这里的问题在于输入,而不是转换。如果你需要改变它,它的基本原理是什么?这样的
<font>元素的每个兄弟姐妹?每个后兄弟姐妹?每个兄弟姐妹/兄弟姐妹和他们的孩子?仅文本元素?你需要正确地描述你的问题......一旦这样做了,在 XSLT 中表达它是微不足道的。