1
我有以下的XML文件我轉換爲CSV,問題是,第一個數據部分是所有字符串標籤,我可以跳過,如果我需要和第二部分是字符串和int標記的混合。我能夠獲取數據,但頂部有一塊奇怪的數據塊,我無法刪除。該XML文件是自動生成的,所以我不能改變它。XSL問題處理零星和重複標籤去csv
<?xml version="1.0" encoding="utf-8"?>
<methodResponse><params><param><value>
<struct>
<member><name>columns</name><value>
<array><data>
<value><string>id</string></value>
<value><string>scanTime</string></value>
<value><string>host</string></value>
<value><string>vuln</string></value>
<value><string>port</string></value>
<value><string>protocol</string></value>
</data></array>
</value></member>
<member><name>table</name>
<value>
<array><data>
<value>
<array><data>
<value><int>1</int></value>
<value><int>1414010812</int></value>
<value><string>Host.5</string></value>
<value><string>Vuln.6230</string></value>
<value><int>500</int></value>
<value><string>udp</string></value>
</data></array>
</value>
<value>
<array><data>
<value><int>2</int></value>
<value><int>1414010978</int></value>
<value><string>Host.6</string></value>
<value><string>Vuln.1191</string></value>
<value><int>22</int></value>
<value><string>tcp</string></value>
</data></array>
</value>
<value>
<array><data>
<value><int>3</int></value>
<value><int>1414010978</int></value>
<value><string>Host.6</string></value>
<value><string>Vuln.30535</string></value>
<value><int>22</int></value>
<value><string>tcp</string></value>
</data></array>
</value>
<value>
<array><data>
<value><int>4</int></value>
<value><int>1414010978</int></value>
<value><string>Host.6</string></value>
<value><string>Vuln.78682</string></value>
<value><int>22</int></value>
<value><string>tcp</string></value>
</data></array>
</value>
</data></array>
</value></member>
</struct>
</value>
</param>
</params>
</methodResponse>
**my XSL 1.0 code below**
<xsl:variable name="new-line" select="'
'"/>
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="value/array/data">
<xsl:for-each select="//array/data">
<xsl:for-each select="value">
<xsl:value-of select="translate(*, $new-line,' ')"/>,
</xsl:for-each><br/>;
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
我的期望輸出
id,scanTime,host,vuln,port,protocol
1,1414010812,Host.5,Vuln.6230,500,udp;
2,1414010978,Host.6,Vuln.1191,22,tcp;
3,1414010978,Host.6,Vuln.30535,22,tcp;
4,1414010978,Host.6,Vuln.78682,22,tcp;
5,1414010978,Host.6,Vuln.78683,22,tcp;
的問題是,它貫穿於過程,並在一行上打印的一切擁有巨大的空間它打印我的期望輸出之前。我嘗試過使用這個網站上的其他例子,但我無法得到任何匹配。
這一工程驚人爲我所問。我很抱歉,我忘了提及我有多個記錄。在表格部分有多個數組和表格數據表,它們可以保存多個結果,我把它剪掉了,所以我沒有把帖子弄亂,但是看起來我更加困難。 – LeotheDog
請用幾個節點的實際XML更新您的文章以辨別圖案。 – Parfait