xslt在注入xml时不起作用
我是XSLT新手,我尝试将一个xml文件转换为另一个xml文件,但在将xsl注入xml时,它不知怎么地不起作用。当我在IE中打开XML时,它显示为空白 我正在使用以下xslt代码:-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
<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="/">
< xml version="1.0"? >
< RECORDS >
< RECORD >
<xsl:for-each select="document/asset/attribute">
< PROP NAME="<xsl:value-of select="@name"/>" >
< PVAL > <xsl:value-of select="string/@value"/> < /PVAL >
< /PROP >
</xsl:for-each>
< /RECORD >
< /RECORDS >
</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="<p> 	&lt;div class=&quot;container&quot;&gt;&nbsp;&nbsp;&lt;div class=&quot;four columns&quot;&gt; &lt;div id=&quot;info&quot;&gt; &lt;h3&gt;Information&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;siteLink:company/aboutUs.jsp&quot;&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将其导出。