XSL:删除xml标记但保留其内容

Ace*_*Ace 1 xml xslt docbook dita

我最近将几个我的.xml文件从docbook更改为dita.转换没问题,但有一些不需要的工件.我难以理解的是.dita没有<para>从docbook中识别标签,而是将其替换为<p>.您认为没问题,但这会导致XML在下一行显示项目和有序列表,即:

1
 item One
2
 item Two

代替:

1 item One
2 item Two

所以我该如何改变这个:

<section>
<title>Cool Stuff</title>
<orderedlist>
  <listitem>
    <para>ItemOne</para>
  </listitem>

  <listitem>
    <para>ItemTwo</para>
  </listitem>
</orderedlist>
Run Code Online (Sandbox Code Playgroud)

对此:

<section>
<title>Cool Stuff</title>
<orderedlist>
  <listitem>
    ItemOne
  </listitem>

  <listitem>
    ItemTwo
  </listitem>
</orderedlist>
Run Code Online (Sandbox Code Playgroud)

对不起,我应该更清楚这个问题.我需要从不同深度的doument中删除所有标签,但始终遵循(本地)树listitem/para.我对此有点新意,但是我可以通过将其添加到我的docbook2dita转换中来做错.可以在那个地方吗?

小智 5

我会使用这个样式表:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match ="listitem/para">
        <xsl:apply-templates/>
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

注意:覆盖身份规则.listitem/para被绕过(这保留了混合内容)