输入必须删除空标题部分。
<?xml version="1.0" encoding="UTF-8"?>
<book>
<section counter="yes" level="5">
<title>
<target id="page92"/>
</title>
<section counter="yes" level="6">
<title>Standard 12-lead ECG at Rest</title>
<para>para para para para para para para para para para para para para para </para>
<listing type="dash">
<litem>
<para>para para para para para para para para para para para para para para
</para>
</litem>
<litem>
<para>para para para para para para para para para para para para para para
</para>
</litem>
</listing>
<para>para para para para para para para para para para para para para para </para>
</section>
<section counter="yes" level="6">
<title>ECG in Exercise Stress Testing</title>
<para>para para para para para para para para para para para para para para </para>
<listing type="dash">
<litem>
<para>para para para para para para para para para para para para para para
</para>
</litem>
<litem>
<para>para para para para para para para para para para para para para para
</para>
</litem>
</listing>
</section>
<section counter="yes" level="6">
<title>Long-term ECG Recording</title>
<figure id="c006_f011">
<legend>
<para><emph type="bold">a, b</emph> para para para para para para para para para
para para para para para </para>
</legend>
<subfigure>
<graphic position="center" fileref="images/9783131644312_c006_f011.jpg"/>
</subfigure>
</figure>
<para>para para para para para para para para para para para para para para </para>
</section>
<section counter="yes" level="6">
<title>ECG Monitoring</title>
<para>para para para para para para para para para para para para para para </para>
</section>
</section>
</book>
我正在使用XSLT进行转换以删除具有空标题的部分并在第一部分中移动其目标/ @ id:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:output method="xml" indent="no" encoding="UTF-8"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="section[ancestor::book]">
<xsl:choose>
<xsl:when test="not(normalize-space(title))">
<xsl:apply-templates select="node() except title"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy><xsl:apply-templates select="node() | @*"/></xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="para[not(preceding-sibling::para) and parent::section/parent::section[normalize-space(title)='']/title/target and ancestor::section[not(normalize-space(title))]/section]">
<para>
<xsl:attribute name="amr_id" select="parent::section/parent::section[normalize-space(title)='']/title/target/@id"/>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</para>
</xsl:template>
<xsl:template match="target">
<xsl:choose>
<xsl:when test="contains(@id, 'page') and normalize-space(parent::title)=''"/>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
输出我能够生成:
<book>
<section counter="yes" level="6">
<title>Standard 12-lead ECG at Rest</title>
<para amr_id="page92">para para para para para para para para para para para para para para </para>
<listing type="dash">
<litem>
<para>para para para para para para para para para para para para para para </para>
</litem>
<litem>
<para>para para para para para para para para para para para para para para </para>
</litem>
</listing>
<para>para para para para para para para para para para para para para para </para>
</section>
<section counter="yes" level="6">
<title>ECG in Exercise Stress Testing</title>
<para amr_id="page92">para para para para para para para para para para para para para para </para>
<listing type="dash">
<litem>
<para>para para para para para para para para para para para para para para </para>
</litem>
<litem>
<para>para para para para para para para para para para para para para para </para>
</litem>
</listing>
</section>
<section counter="yes" level="6">
<title>Long-term ECG Recording</title>
<figure id="c006_f011">
<legend>
<para><emph type="bold">a, b</emph> para para para para para para para para para
para para para para para </para>
</legend>
<subfigure>
<graphic position="center" fileref="images/9783131644312_c006_f011.jpg"/>
</subfigure>
</figure>
<para amr_id="page92">para para para para para para para para para para para para para para
</para>
</section>
<section counter="yes" level="6">
<title>ECG Monitoring</title>
<para amr_id="page92">para para para para para para para para para para para para para para
</para>
</section>
</book>
要注意: @amr_id正在每个部分生成所有段落,我只想要第一段/段。