我對使用XSLT非常陌生,我試圖將一個基本的XML文件轉換爲SQL以便插入到數據庫中。基本XSLT故障
我試圖改變:
<?xml version="1.0" standalone="yes"?>
<DataStore xmlns="Microsystems.D3.DataEngine">
<DDA_Atoms>
<ID>22d2e980-f13b-43be-83a8-4b72cd38c053</ID>
<CONTENT />
<NAME>name 1</NAME>
<PREVIEW>preview 1</PREVIEW>
<STRUCTURE_ELEMENT_ID>1</STRUCTURE_ELEMENT_ID>
<HASH>-2013036173</HASH>
<PATH>C:\dir1</PATH>
<SIZE>88331</SIZE>
</DDA_Atoms>
<DDA_Atoms>
<ID>4a1b0532-db0c-4790-9e71-92f6d84b4ad2</ID>
<CONTENT />
<NAME>Name 2</NAME>
<PREVIEW>preview 2</PREVIEW>
<STRUCTURE_ELEMENT_ID>2</STRUCTURE_ELEMENT_ID>
<HASH>-1467957647</HASH>
<PATH>C:\dir2</PATH>
<SIZE>220557</SIZE>
</DDA_Atoms>
</DataStore>
使用以下XSL:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" encoding="iso-8859-1"/>
<xsl:template match="DataStore">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="DDA_Atoms">
<xsl:text>INSERT INTO DDA_Atoms VALUES ('</xsl:text >
<xsl:value-of select="ID"/>
<xsl:text>', '</xsl:text>
<xsl:value-of select="CONTENT"/>
<xsl:text>', '</xsl:text>
<xsl:value-of select="NAME"/>
<xsl:text>', '</xsl:text>
<xsl:value-of select="PREVIEW"/>
<xsl:text>', </xsl:text>
<xsl:value-of select="STRUCTURE_ELEMENT_ID"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="HASH"/>
<xsl:text>, '</xsl:text>
<xsl:value-of select="PATH"/>
<xsl:text>', </xsl:text>
<xsl:value-of select="SIZE"/>
<xsl:text>)</xsl:text>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
但是當我運行對XML的XSL它與節點的公正價值和回來不是字面的SQL文本。更重要的是,它實際上忽略了所有的XSL,因爲當我刪除所有的模板匹配代碼並且基本上留下一個空的XSL文檔時,轉換完成了同樣的事情:僅返回節點的所有值,如:
22d2e980-f13b-43be-83a8-4b72cd38c053name 1preview 11-2013036173C:\dir1883314a1b0532-db0c-4790-9e71-92f6d84b4ad2Name 2preview 22-1467957647C:\dir2220557
我想我的模板匹配的「丟失」他們的目標什麼的。我究竟做錯了什麼?
優秀。非常感謝您的幫助。 – CodingUnderDuress