-- 作者:leosli
-- 发布时间:8/31/2009 9:49:00 AM
-- XSLT 找不到带有schema的xml根节点
各位高手: 我在shell里面调用xalan转换xml,但是我的xslt总是不能找到xml的根节点,如果我删除xml文件根节点schema的定义,就可以找到了。 请大家帮忙解决以下。 十分感谢。 那下面的xml和xsl作为例子,如果我把xml根节点的schema定义和namespace删除,使根节点变为<FEED>,就可以正常转换了。 xml: <?xml version="1.0" encoding="UTF-8"?> <!--Sample XML file generated by XMLSpy v2009 (http://www.altova.com)--> <FEED xsi:schemaLocation="http://www.xxxxxx.com/xdb/FEED/xxx.xsd xxx.xsd" xmlns="http://www.xxxx.com/xdb/FEED/xxx.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <MSG1 MESSAGE_TYPE="BONDS" MESSAGE_TYPE_NO="106"> <INSTRUMENT> <TP_DATE>2009-08-07T03:41:57.239014</TP_DATE> <EMSNA>1</EMSNA> <INST_TYPE>201</INST_TYPE> <OPERATION>DR</OPERATION> <SYMBOL>B00081828</SYMBOL> <RIC>JP20010158=JSPN</RIC> <DSPLY_NAME>CITY OF FUKUOKA </DSPLY_NAME> <OFFCL_CODE>20010158</OFFCL_CODE> <MATUR_DATE>2013-06-25T00:00:00</MATUR_DATE> <CREATION_DATE>2008-06-09T05:50:11</CREATION_DATE> </INSTRUMENT> </MSG1> <MSG2 MESSAGE_TYPE="BONDS" MESSAGE_TYPE_NO="107"> <INSTRUMENT> <TP_DATE>2009-08-07T06:14:17.420433</TP_DATE> <EMSN>1</EMSN> <INST_TYPE>100</INST_TYPE> <OPERATION>I </OPERATION> <SYMBOL>ADB169A</SYMBOL> <RIC>ADB169A=TS</RIC> <DSPLY_NAME>ADB169A</DSPLY_NAME> </INSTRUMENT> </MSG2> </FEED>[/QUOTE] xsl: [QUOTE]<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" indent="yes"/> <xsl:template match="/FEED"> <xsl:apply-templates/> </xsl:template> <xsl:template match="MSG1"> <xsl:for-each select="INSTRUMENT"> <xsl:value-of select="TP_DATE"/>|<xsl:value-of select="EMSN"/>| <xsl:value-of select="INST_TYPE"/>| <xsl:value-of select="RIC"/>|<xsl:value-of select="SYMBOL"/>| <xsl:value-of select="DSPLY_NAME"/>|<xsl:value-of select="MATUR_DATE"/>| <xsl:value-of select="STRIKE_PRC"/>|<xsl:value-of select="CREATION_DATE"/> <xsl:text disable-output-escaping="yes">
</xsl:text> </xsl:for-each> </xsl:template> <xsl:template match="MSG2"> <xsl:for-each select="INSTRUMENT"> <xsl:value-of select="RIC"/> | <xsl:value-of select="SYMBOL"/> | <xsl:value-of select="DSPLY_NAME"/> </xsl:for-each> </xsl:template> </xsl:stylesheet |
> [此贴子已经被作者于2009-8-31 17:12:01编辑过]
|