我有一个xml文件,它以顶部的处理指令开头。所以,我需要将这个PI ('?change' not '?xml')
替换为根元素内部。我的意思是下面的情景是原始的,看看PI
<?xml version="1.0" encoding="UTF-8"?>
<?change id="69817" type="addition" mark="start"?>
<part id="PARTIII">
<title><p just="center" fli="0" li="0" ri="0" before="1" after="1">PART 3</p>
<p fli="0" li="0" ri="0" just="center" before="0"><font size="normal" smallcaps="yes">Mergers and Acquisitions</font></p></title>
<div class="annotations">
因此,我需要将根元素之前的第一个PI(更改)移动到根元素内。我怎么能做到这一点。有什么帮助吗?
我的意思是上面的代码应该是(查看PI'更改')
<?xml version="1.0" encoding="UTF-8"?>
<part id="PARTIII"><?change id="69817" type="addition" mark="start"?>
<title><p just="center" fli="0" li="0" ri="0" before="1" after="1">PART 3</p>
<p fli="0" li="0" ri="0" just="center" before="0"><font size="normal" smallcaps="yes">Mergers and Acquisitions</font></p></title>
<div class="annotations">
答案 0 :(得分:1)
尝试以下样式表:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="processing-instruction()[following-sibling::part]"/>
<xsl:template match="part">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="preceding-sibling::processing-instruction()"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>