Ant*_*ony 8 xslt xpath processing-instruction
我的xml内容中有一些处理指令元素,例如:
<?legalnoticestart?>
<?sourcenotestart?>
<para>Content para</para>
<?sourcenoteend?>
<?literallayoutstart?>
<para>body content </para>
<?literallayoutend?>
<?legalnoticeend?>
Run Code Online (Sandbox Code Playgroud)
我如何匹配这些元素并获得以下所需元素格式的内容?
必需的xml:
<legalnotice>
<sourcenote>
<p>Content para</p>
</sourcenote>
<literallayout>
<p>body content</p>
</literallayout>
</legalnotice>
Run Code Online (Sandbox Code Playgroud)
请指教....
最诚挚的问候,安东尼
but*_*ken 17
默认情况下,XSLT处理器将忽略PI - 为了匹配它们以便做有趣和有用的事情,您可以在模板中使用处理指令匹配:
<xsl:template match="processing-instruction('legalnoticestart')">
<legalnotice><xsl:value-of select="."/></legalnotice>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
例如,以下样式表:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="doc">
<xsl:apply-templates select="processing-instruction('legalnoticestart')" />
</xsl:template>
<xsl:template match="processing-instruction('legalnoticestart')">
<legalnotice><xsl:value-of select="."/></legalnotice>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
有了这个文件:
<doc>
<?legalnoticestart?>
<?legalnoticeend?>
</doc>
Run Code Online (Sandbox Code Playgroud)
产量:
<?xml version="1.0"?>
<legalnotice>
</legalnotice>
Run Code Online (Sandbox Code Playgroud)