1
我使用xslt 2.0將xml數據轉換爲xml文件。 我創建XSL來查找文件夾中的所有文件名,它工作得很好:從xml文件中選擇
filenames.xml
<?xml version="1.0" encoding="UTF-8"?>
<filelist>
<file>birds2014.xml</file>
<file>birds2013.xml</file>
</filelist>
然後,我創建了一個XSL到XML的文件中進行搜索,選擇的所有名稱在所有文件中位於標籤<spbird>
中的鳥。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="*">
<xsl:apply-templates/>
<xsl:variable name="files" select="document('filelist.xml')/filelist/file"/>
<xsl:element name="birdname">
<xsl:for-each select="document($files)">
<xsl:value-of select="//spbird">
</xsl:value-of>
</xsl:for-each>
</xsl:element>
</xsl:template>
結果:
<birdname>Papagei Wellensittich Pfau</birdname>
<birdname>Papagei Wellensittich Pfau</birdname>
<birdname>Papagei Wellensittich Pfau</birdname>
<birdname>Papagei Wellensittich Pfau</birdname>
<birdname>Papagei Wellensittich Pfau</birdname>
<birdname>Papagei Wellensittich Pfau</birdname>
<birdname>Papagei Wellensittich Pfau</birdname>
<birdname>Papagei Wellensittich Pfau</birdname>
<birdname>Papagei Wellensittich Pfau</birdname>
預計:
<birdname>Papagei</birdname>
<birdname>Wellensittich</birdname>
<birdname>Pfau</birdname>
誰能幫助?
編輯 我改變了
<xsl:template match="*">
到
<xsl:template match="/">
它解決了同樣的結果顯示了9倍發行(誰知道這個數字來自)。
現在,在您的幫助,結果是:
<birdname>Papagei Wellensittich</birdname>
<birdname>Pfau</birdname>
Pfau
是在第二xml文件的鳥。 唯一的問題是,該文檔()似乎爲它自己做了一個for-each。所以,我沒有得到一個birdname標籤seperately列出的所有的鳥..
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="*">
<xsl:apply-templates/>
<xsl:variable name="files" select="document('filelist.xml')/filelist/file"/>
<xsl:for-each select="document($files)">
<birdname>
<xsl:value-of select="//spbird">
</birdname>
</xsl:value-of>
</xsl:for-each>
</xsl:element>
</xsl:template>
thx,改變了它,看到我的編輯...仍然不是我預期的結果。 – user3500768
@ user3500768 - 查看我的更新。如果這不起作用,請使用bird xml(包含'spbird')的示例更新您的問題。 –
是的,這很合乎邏輯,非常感謝。像charme一樣工作。 – user3500768