xslt在注入xml时不起作用

xslt在注入xml时不起作用,xslt,Xslt,我是XSLT新手,我尝试将一个xml文件转换为另一个xml文件,但在将xsl注入xml时,它不知怎么地不起作用。当我在IE中打开XML时,它显示为空白 我正在使用以下xslt代码:- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="http://some-interna

我是XSLT新手,我尝试将一个xml文件转换为另一个xml文件,但在将xsl注入xml时,它不知怎么地不起作用。当我在IE中打开XML时,它显示为空白

我正在使用以下xslt代码:-

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="http://some-internal-thing/user" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
 <RECORDS> 
 <RECORD> 
     <xsl:for-each select="document/asset/attribute">
       <xsl:attribute name="PROP NAME"> ="<xsl:value-of select="@name"/>"</xsl:attribute>
          <xsl:attribute name="PVAL"/> <xsl:value-of select="string/@value"/><xsl:attribute name="/PVAL"/> 
         <xsl:attribute name="/PROP"/>
     </xsl:for-each>
 </RECORD>
 </RECORDS>
</xsl:template>
</xsl:stylesheet>

=""
以下xslt正在工作,但是浏览器没有显示正确的XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="no" method="html" indent="yes" />
<xsl:template match="/">
 &lt;  xml version="1.0"?  &gt; 
  &lt;  RECORDS  &gt; 
  &lt;  RECORD  &gt; 
     <xsl:for-each select="document/asset/attribute">
        &lt;  PROP NAME="<xsl:value-of select="@name"/>"  &gt; 
           &lt;  PVAL  &gt;  <xsl:value-of select="string/@value"/>  &lt;  /PVAL  &gt; 
          &lt;  /PROP  &gt; 
     </xsl:for-each>
  &lt; /RECORD  &gt; 
  &lt; /RECORDS  &gt; 
</xsl:template>
</xsl:stylesheet>

xml version=“1.0”?
记录
记录
PROP NAME=“”
PVAL/PVAL
/支柱
/记录
/记录
XML如下所示:-

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="myxslCopy.xsl"?>
<document>
<asset id="1385567968442" type="TAISHtmlContent">
<attribute name="createdby"><string value="fwadmin"/></attribute>
<attribute name="category"><string value="g"/></attribute>
<attribute name="Publist"><array>
<integer value="1385571110545"/></array>
</attribute>
<attribute name="content"><string value="&#60;p&#62;&#13;&#10;&#9;&#38;lt;div class=&#38;quot;container&#38;quot;&#38;gt;&#38;nbsp;&#38;nbsp;&#38;lt;div class=&#38;quot;four columns&#38;quot;&#38;gt; &#38;lt;div id=&#38;quot;info&#38;quot;&#38;gt; &#38;lt;h3&#38;gt;Information&#38;lt;/h3&#38;gt; &#38;lt;ul&#38;gt; &#38;lt;li&#38;gt;&#38;lt;a href=&#38;quot;siteLink:company/aboutUs.jsp&#38;quot;&#38;gt;About 
</attribute>
<attribute name="createddate"><date value="2013-12-03 15:06:54.442"/></attribute>
<attribute name="updateddate"><date value="2013-12-03 15:09:00.422"/></attribute>
<attribute name="active"><integer value="1"/></attribute>
<attribute name="fw_uid"><string value="d651728f-fe72-4ab3-9e63-684d979f62c9"/></attribute>
</asset>
</document>


如果可以切换到XSLT2.0(Saxton 9.?) 然后您可以使用以下代码:

<xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
    xmlns:user="http://some-internal-thing/user" >

<xsl:output method="xml" version="1.0" encoding="UTF-8" 
    indent="yes" omit-xml-declaration="yes"/>

    <xsl:template match="/">
        <RECORDS> 
            <RECORD>
                <xsl:for-each select="document/asset/attribute">
                    <PROP>
                        <xsl:attribute name="NAME" select="@name"></xsl:attribute>
                        <PVAL>
                            <xsl:value-of select="string/@value"></xsl:value-of> 
                        </PVAL>
                    </PROP>
                </xsl:for-each>
            </RECORD>
        </RECORDS>
    </xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
    xmlns:user="http://some-internal-thing/user" >

<xsl:output method="xml" version="1.0" encoding="UTF-8" 
    indent="yes" omit-xml-declaration="yes"/>

    <xsl:template match="/">
        <RECORDS> 
            <RECORD>
                <xsl:for-each select="document/asset/attribute">
                    <PROP>
                        <xsl:attribute name="NAME">
                            <xsl:value-of select="@name"/>
                        </xsl:attribute>
                        <PVAL>
                            <xsl:value-of select="string/@value"></xsl:value-of> 
                        </PVAL>
                    </PROP>
                </xsl:for-each>
            </RECORD>
        </RECORDS>
    </xsl:template>
</xsl:stylesheet>

如果必须使用XSLT1.0 然后尝试以下代码:

<xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
    xmlns:user="http://some-internal-thing/user" >

<xsl:output method="xml" version="1.0" encoding="UTF-8" 
    indent="yes" omit-xml-declaration="yes"/>

    <xsl:template match="/">
        <RECORDS> 
            <RECORD>
                <xsl:for-each select="document/asset/attribute">
                    <PROP>
                        <xsl:attribute name="NAME" select="@name"></xsl:attribute>
                        <PVAL>
                            <xsl:value-of select="string/@value"></xsl:value-of> 
                        </PVAL>
                    </PROP>
                </xsl:for-each>
            </RECORD>
        </RECORDS>
    </xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
    xmlns:user="http://some-internal-thing/user" >

<xsl:output method="xml" version="1.0" encoding="UTF-8" 
    indent="yes" omit-xml-declaration="yes"/>

    <xsl:template match="/">
        <RECORDS> 
            <RECORD>
                <xsl:for-each select="document/asset/attribute">
                    <PROP>
                        <xsl:attribute name="NAME">
                            <xsl:value-of select="@name"/>
                        </xsl:attribute>
                        <PVAL>
                            <xsl:value-of select="string/@value"></xsl:value-of> 
                        </PVAL>
                    </PROP>
                </xsl:for-each>
            </RECORD>
        </RECORDS>
    </xsl:template>
</xsl:stylesheet>


您试图生成什么输出?XSLT中的
没有任何意义。我试图获得以下格式的输出xml,即Skype 577 690的QuickCam®Chat,据我所知,该输出与您提供的输入没有任何相似之处。这些数据来自哪里?感谢Ian,这些数据来自Oracle webcenter站点(这是一个CMS),采用XML格式。我正在尝试应用XSLT,以便以所需的格式生成新的xml。我的意思是,您提供的输入似乎不包含您希望在输出中包含的任何字符串,例如“QuickCam®Chat for Skype”、“product.category_id”、“577”、“690”,等等。如果XML中没有您需要的数据,那么您将无法使用XSLT将其导出。