Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何包装';样式化内容';价值单位为';外部参照&x27;元素_Xml_Xpath_Xquery_Xslt 2.0 - Fatal编程技术网

Xml 如何包装';样式化内容';价值单位为';外部参照&x27;元素

Xml 如何包装';样式化内容';价值单位为';外部参照&x27;元素,xml,xpath,xquery,xslt-2.0,Xml,Xpath,Xquery,Xslt 2.0,元素“styled content”具有固定属性@style和@style type值,这里我们尝试将数字值包装在“xref”元素中,该元素用字符分隔为“,”和“,”–”。下面是示例案例: <?xml version="1.0" encoding="UTF-8"?> <root> <p content-type="new">A thorough review of the <bold>tr

元素“styled content”具有固定属性@style和@style type值,这里我们尝试将数字值包装在“xref”元素中,该元素用字符分隔为“,”和“,”–”。下面是示例案例:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;14.19</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;15.39A</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;14A.24</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.11, 14.15</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.11, 14.15, 14.16</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.13&#x2013;14.18</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;8.3A&#x2013;8.3F</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;13.44, 14.2&#x2013;14.6</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.31, 14.50, and 14.85</styled-content></p>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>14.19</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>15.39A</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>14A.24</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.11</xref>, <xref>14.15</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.11</xref>, <xref>14.15</xref>, <xref>14.16</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.13</xref>&#x2013;<xref>14.18</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>8.3A</xref>&#x2013;<xref>8.3F</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>13.44</xref>, <xref>14.2</xref>&#x2013;<xref>14.6</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.31</xref>, <xref>14.50</xref>, and <xref>14.85</xref></styled-content></p>
</root>
<?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:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="styled-content[@style='internal' and @style-type='Ref-internal' and not(ancestor::book-part[@book-part-type[.='preface']])]">
    <xsl:choose>
        <xsl:when test="not(contains(.,'chap'))">
            <styled-content style-type="{/book-part/book-meta/book-id}">
                <xsl:for-each select="tokenize(.,'&#x2013;')">
                    <xsl:if test="normalize-space(.)">
                        <xsl:choose>
                            <xsl:when test="contains(.,'&#x00a7;&#x00a7;')">
                                <xsl:text>&#x00a7;&#x00a7;</xsl:text><xref><xsl:value-of select="substring-after(.,'&#x00a7;&#x00a7;')"/></xref>
                            </xsl:when>
                            <xsl:when test="contains(.,'&#x00a7;')">
                                <xsl:text>&#x00a7;</xsl:text><xref><xsl:value-of select="substring-after(.,'&#x00a7;')"/></xref>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:if test="not(starts-with(., 'Chapter')) and not(starts-with(., 'Sections'))">
                                    <xsl:text>&#x2013;</xsl:text>
                                </xsl:if>
                                <xsl:choose>
                                    <xsl:when test="starts-with(., 'Sections')">
                                        <xsl:text>Sections </xsl:text><xref><xsl:value-of select="replace(.,'Sections ','')"/></xref>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xref><xsl:value-of select="."/></xref>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:otherwise>
                        </xsl:choose>
                    </xsl:if>
                </xsl:for-each>
            </styled-content>
        </xsl:when>
        <xsl:otherwise>
            <styled-content style="internal" style-type="Ref-internal">
                <xsl:apply-templates/>
            </styled-content>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

</xsl:stylesheet>
注意:元素“styled content”属性是固定的,但在“p”元素下可以有其他元素,如“italic”和“bold”。这些要素也应保留。此外,“样式化内容”元素可以是除“p”之外的其他2个父元素。

输入XML:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;14.19</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;15.39A</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;14A.24</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.11, 14.15</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.11, 14.15, 14.16</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.13&#x2013;14.18</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;8.3A&#x2013;8.3F</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;13.44, 14.2&#x2013;14.6</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.31, 14.50, and 14.85</styled-content></p>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>14.19</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>15.39A</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>14A.24</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.11</xref>, <xref>14.15</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.11</xref>, <xref>14.15</xref>, <xref>14.16</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.13</xref>&#x2013;<xref>14.18</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>8.3A</xref>&#x2013;<xref>8.3F</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>13.44</xref>, <xref>14.2</xref>&#x2013;<xref>14.6</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.31</xref>, <xref>14.50</xref>, and <xref>14.85</xref></styled-content></p>
</root>
<?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:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="styled-content[@style='internal' and @style-type='Ref-internal' and not(ancestor::book-part[@book-part-type[.='preface']])]">
    <xsl:choose>
        <xsl:when test="not(contains(.,'chap'))">
            <styled-content style-type="{/book-part/book-meta/book-id}">
                <xsl:for-each select="tokenize(.,'&#x2013;')">
                    <xsl:if test="normalize-space(.)">
                        <xsl:choose>
                            <xsl:when test="contains(.,'&#x00a7;&#x00a7;')">
                                <xsl:text>&#x00a7;&#x00a7;</xsl:text><xref><xsl:value-of select="substring-after(.,'&#x00a7;&#x00a7;')"/></xref>
                            </xsl:when>
                            <xsl:when test="contains(.,'&#x00a7;')">
                                <xsl:text>&#x00a7;</xsl:text><xref><xsl:value-of select="substring-after(.,'&#x00a7;')"/></xref>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:if test="not(starts-with(., 'Chapter')) and not(starts-with(., 'Sections'))">
                                    <xsl:text>&#x2013;</xsl:text>
                                </xsl:if>
                                <xsl:choose>
                                    <xsl:when test="starts-with(., 'Sections')">
                                        <xsl:text>Sections </xsl:text><xref><xsl:value-of select="replace(.,'Sections ','')"/></xref>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xref><xsl:value-of select="."/></xref>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:otherwise>
                        </xsl:choose>
                    </xsl:if>
                </xsl:for-each>
            </styled-content>
        </xsl:when>
        <xsl:otherwise>
            <styled-content style="internal" style-type="Ref-internal">
                <xsl:apply-templates/>
            </styled-content>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

</xsl:stylesheet>

对信托工具的全面审查(参见第14.19节

对信托工具的全面审查(见§;15.39A

对信托工具的全面审查(见§;14A.24

对信托工具的全面审查(见14.11和14.15

对信托工具的全面审查(见14.11、14.15、14.16

对信托工具的全面审查(见§;§;14.13–;14.18

对信托工具的全面审查(参见第8.3A节和第8.3F节

对信托工具的全面审查(参见第13.44、14.2和14.6节

对信托工具的全面审查(见14.31、14.50和14.85

预期输出:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;14.19</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;15.39A</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;14A.24</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.11, 14.15</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.11, 14.15, 14.16</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.13&#x2013;14.18</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;8.3A&#x2013;8.3F</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;13.44, 14.2&#x2013;14.6</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.31, 14.50, and 14.85</styled-content></p>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>14.19</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>15.39A</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>14A.24</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.11</xref>, <xref>14.15</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.11</xref>, <xref>14.15</xref>, <xref>14.16</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.13</xref>&#x2013;<xref>14.18</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>8.3A</xref>&#x2013;<xref>8.3F</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>13.44</xref>, <xref>14.2</xref>&#x2013;<xref>14.6</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.31</xref>, <xref>14.50</xref>, and <xref>14.85</xref></styled-content></p>
</root>
<?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:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="styled-content[@style='internal' and @style-type='Ref-internal' and not(ancestor::book-part[@book-part-type[.='preface']])]">
    <xsl:choose>
        <xsl:when test="not(contains(.,'chap'))">
            <styled-content style-type="{/book-part/book-meta/book-id}">
                <xsl:for-each select="tokenize(.,'&#x2013;')">
                    <xsl:if test="normalize-space(.)">
                        <xsl:choose>
                            <xsl:when test="contains(.,'&#x00a7;&#x00a7;')">
                                <xsl:text>&#x00a7;&#x00a7;</xsl:text><xref><xsl:value-of select="substring-after(.,'&#x00a7;&#x00a7;')"/></xref>
                            </xsl:when>
                            <xsl:when test="contains(.,'&#x00a7;')">
                                <xsl:text>&#x00a7;</xsl:text><xref><xsl:value-of select="substring-after(.,'&#x00a7;')"/></xref>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:if test="not(starts-with(., 'Chapter')) and not(starts-with(., 'Sections'))">
                                    <xsl:text>&#x2013;</xsl:text>
                                </xsl:if>
                                <xsl:choose>
                                    <xsl:when test="starts-with(., 'Sections')">
                                        <xsl:text>Sections </xsl:text><xref><xsl:value-of select="replace(.,'Sections ','')"/></xref>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xref><xsl:value-of select="."/></xref>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:otherwise>
                        </xsl:choose>
                    </xsl:if>
                </xsl:for-each>
            </styled-content>
        </xsl:when>
        <xsl:otherwise>
            <styled-content style="internal" style-type="Ref-internal">
                <xsl:apply-templates/>
            </styled-content>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

</xsl:stylesheet>

对信托工具的全面审查(参见第14.19节

对信托工具的全面审查(见§;15.39A

对信托工具的全面审查(见§;14A.24

对信托工具的全面审查(见14.11和14.15

对信托工具的全面审查(见14.11、14.15、14.16

对信托工具的全面审查(见§;§;14.13–;14.18

对信托工具的全面审查(参见第8.3A节和第8.3F节

对信托工具的全面审查(参见第13.44、14.2和14.6节

对信托工具的全面审查(见14.31、14.50和14.85

XSLT代码:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;14.19</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;15.39A</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;14A.24</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.11, 14.15</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.11, 14.15, 14.16</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.13&#x2013;14.18</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;8.3A&#x2013;8.3F</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;13.44, 14.2&#x2013;14.6</styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;14.31, 14.50, and 14.85</styled-content></p>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>14.19</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>15.39A</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;<xref>14A.24</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.11</xref>, <xref>14.15</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.11</xref>, <xref>14.15</xref>, <xref>14.16</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.13</xref>&#x2013;<xref>14.18</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>8.3A</xref>&#x2013;<xref>8.3F</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>13.44</xref>, <xref>14.2</xref>&#x2013;<xref>14.6</xref></styled-content></p>
<p content-type="new">A thorough review of the <bold>trust</bold> instrument (see <styled-content style="internal" style-type="Ref-internal">&#x00a7;&#x00a7;<xref>14.31</xref>, <xref>14.50</xref>, and <xref>14.85</xref></styled-content></p>
</root>
<?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:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="styled-content[@style='internal' and @style-type='Ref-internal' and not(ancestor::book-part[@book-part-type[.='preface']])]">
    <xsl:choose>
        <xsl:when test="not(contains(.,'chap'))">
            <styled-content style-type="{/book-part/book-meta/book-id}">
                <xsl:for-each select="tokenize(.,'&#x2013;')">
                    <xsl:if test="normalize-space(.)">
                        <xsl:choose>
                            <xsl:when test="contains(.,'&#x00a7;&#x00a7;')">
                                <xsl:text>&#x00a7;&#x00a7;</xsl:text><xref><xsl:value-of select="substring-after(.,'&#x00a7;&#x00a7;')"/></xref>
                            </xsl:when>
                            <xsl:when test="contains(.,'&#x00a7;')">
                                <xsl:text>&#x00a7;</xsl:text><xref><xsl:value-of select="substring-after(.,'&#x00a7;')"/></xref>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:if test="not(starts-with(., 'Chapter')) and not(starts-with(., 'Sections'))">
                                    <xsl:text>&#x2013;</xsl:text>
                                </xsl:if>
                                <xsl:choose>
                                    <xsl:when test="starts-with(., 'Sections')">
                                        <xsl:text>Sections </xsl:text><xref><xsl:value-of select="replace(.,'Sections ','')"/></xref>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xref><xsl:value-of select="."/></xref>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:otherwise>
                        </xsl:choose>
                    </xsl:if>
                </xsl:for-each>
            </styled-content>
        </xsl:when>
        <xsl:otherwise>
            <styled-content style="internal" style-type="Ref-internal">
                <xsl:apply-templates/>
            </styled-content>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

</xsl:stylesheet>

§;&x00a7;
§;
–;
小节

参考链接-

这似乎是
xsl:analyze string
的工作:

<?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:param name="ref-pattern" as="xs:string">[0-9A-Z]+(\.[0-9A-Z]+)*</xsl:param>
    
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    
    <xsl:template match="styled-content[@style = 'internal' and @style-type = 'Ref-internal']/text()">
        <xsl:analyze-string select="." regex="{$ref-pattern}">
            <xsl:matching-substring>
                <xref>
                    <xsl:value-of select="."/>
                </xref>
            </xsl:matching-substring>
            <xsl:non-matching-substring>
                <xsl:value-of select="."/>
            </xsl:non-matching-substring>
        </xsl:analyze-string>
    </xsl:template>
    
</xsl:stylesheet>

[0-9A-Z]+(\.[0-9A-Z]+)*

谢谢!如果您遇到任何问题,我们都会通知您。嗨,Martin,您能告诉我您的电子邮件id吗?我遇到了一个问题,stackoverflow中有一些精简的代码无法exaplan。请帮助我。在您的电子邮件id处共享输入/xslt。谢谢