删除 <li> 标签内的 p 标签 xslt 1

Delete p tag inside <li> tags xslt 1

我需要删除 <p> tags inside <li> 标签。 示例:

<ul><li id="62592d802d9bf64743a6103f"> <p> <u> <strong>WHAT IS CARRER DEVELOPMENT PLAIN ?</strong> </u> </p> </li></ul>

期望的输出:

 <ul><li id="62592d802d9bf64743a6103f"><u> <strong>WHAT IS CARRER DEVELOPMENT PLAIN ?</strong> </u></li></ul>

提前致谢。

您可以使用以下 XSLT-1.0 模板。 Identity Template 只是按原样复制所有元素。第二个模板的作用基本相同,但没有复制当前元素(此处仅针对 <p> 元素)。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>

  <!-- Identity template -->
  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="p[ancestor::li]">
      <xsl:apply-templates select="@*|node()"/>
  </xsl:template>
      
</xsl:stylesheet>

如果您还想删除 spaces/prettify 输出,请在 top-level 处添加以下行(就在 xsl:stylesheet 之后):

<xsl:strip-space elements="*" />