1
我们有XML文件像下面...忽略名称空间T:前缀
<?xml version='1.0'?>
<T0020 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.safersys.org/namespaces/T0020V1 T0020V1.xsd"
xmlns="http://www.safersys.org/namespaces/T0020V1">
<IRP_ACCOUNT>
<IRP_CARRIER_ID_NUMBER>1213561</IRP_CARRIER_ID_NUMBER>
<IRP_BASE_COUNTRY>US</IRP_BASE_COUNTRY>
<IRP_BASE_STATE>AL</IRP_BASE_STATE>
<IRP_ACCOUNT_NUMBER>15485</IRP_ACCOUNT_NUMBER>
<IRP_ACCOUNT_TYPE>I</IRP_ACCOUNT_TYPE>
<IRP_STATUS_CODE>0</IRP_STATUS_CODE>
<IRP_STATUS_DATE>2004-02-23</IRP_STATUS_DATE>
<IRP_UPDATE_DATE>2007-03-09</IRP_UPDATE_DATE>
<IRP_NAME>
<NAME_TYPE>LG</NAME_TYPE>
<NAME>WILLIAMS TODD</NAME>
<IRP_ADDRESS>
<ADDRESS_TYPE>MA</ADDRESS_TYPE>
<STREET_LINE_1>P O BOX 1210</STREET_LINE_1>
<STREET_LINE_2/>
<CITY>MARION</CITY>
<STATE>AL</STATE>
<ZIP_CODE>36756</ZIP_CODE>
<COUNTY/>
<COLONIA/>
<COUNTRY>US</COUNTRY>
</IRP_ADDRESS>
</IRP_NAME>
</IRP_ACCOUNT>
</T0020>
为了插入XML数据到数据库中,我们使用了两个XSLT。 首先XSLT从XML文件中删除名字空间和这个XML转换为某种中间 XML(说Process.xml)上的一些临时文件位置。
然后我们采取了这个中间xml(没有命名空间行)并应用另一个XSL 来映射xml字段到数据库。
然后,我们已经找到解决方案,我们仅使用一个XSLT这确实预示[1]删除命名空间和[2]映射的XML字段到数据库中插入数据。
我们最终的样式表包含以下行
xmlns:t="http://www.safersys.org/namespaces/T0020V1">
和我们使用以下映射场数据库
<xsl:template match="/">
<xsl:element name="T0020">
<xsl:apply-templates select="t:T0020/t:IRP_ACCOUNT" />
</xsl:element>
</xsl:template>
怎么用这个方法解决了我们的问题?用这个什么后果吗? 我已经搜索了这个,但没有得到功能。
在此先感谢..
好的,我已经理解了前缀名称空间的方法。 感谢您的帮助。 – 2010-02-02 10:52:51