面对XSLT格式的问题

时间:2016-01-18 07:46:30

标签: xslt

我正在以下面的格式查看我的xslt:

<xml>
  <apis>
    <name>API Name</name>
    <comment> Comment</comment>
    <version>12</version>
  </apis>
</xml>

XSLT代码:

<?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:L7j="http://ns.l7tech.com/2012/08/jdbc-query-result" version="1.0">
    <xsl:output method="xml" indent="yes" />
    <xsl:template match="/">
      <xml>
        <xsl:apply-templates select="//L7j:col" />
      </xml>
    </xsl:template>
    <xsl:template match="//L7j:col">
      <api>
        <xsl:element name="{@name}">
          <xsl:value-of select="." /></xsl:element>
      </api>
    </xsl:template>
  </xsl:stylesheet> 

输入XML:

<?xml version="1.0" encoding="UTF-8"?>
  <L7j:jdbcQueryResult xmlns:L7j="http://ns.l7tech.com/2012/08/jdbc-query-result">
    <L7j:row>
      <L7j:col name="name" type="java.lang.String">Policy for service #0b8bab6913cc588557b6973e94d1bfdd, WSTrustSoapService</L7j:col>
      <L7j:col name="comment">
        <![CDATA[NULL]]>
      </L7j:col>
      <L7j:col name="version" type="java.lang.Integer">18</L7j:col>
    </L7j:row>
    <L7j:row>
      <L7j:col name="name" type="java.lang.String">Policy for service #0b8bab6913cc588557b6973e94d5893d, UUPRStub</L7j:col>
      <L7j:col name="comment">
        <![CDATA[NULL]]>
      </L7j:col>
      <L7j:col name="version" type="java.lang.Integer">16</L7j:col>
    </L7j:row>
  </L7j:jdbcQueryResult>

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你想做:

XSLT 1.0

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:L7j="http://ns.l7tech.com/2012/08/jdbc-query-result" 
exclude-result-prefixes="L7j">
<xsl:output method="xml" indent="yes" />
<xsl:strip-space elements="*"/>

<xsl:template match="/L7j:jdbcQueryResult">
    <xml>
        <xsl:apply-templates/>
    </xml>
</xsl:template>

<xsl:template match="L7j:row">
    <apis>
        <xsl:apply-templates/>
    </apis>
</xsl:template>

<xsl:template match="L7j:col">
    <xsl:element name="{@name}">
        <xsl:value-of select="." />
    </xsl:element>
</xsl:template>

</xsl:stylesheet>