1
XMLファイルをCSVファイルに変換しようとしていますが、ある時点で突っ込まれています。XSLでXMLをCSVに変換する - foreach内のタグの値を取得する方法
これは私のXMLのサンプルバージョン
<xc:XmlCache xc:action="Update" xmlns:mp="mx.MarketParameters" xmlns:xc="XmlCache" xmlns:sc="mx.MarketParameters.Securities" xmlns:scpr="mx.MarketParameters.Securities.Prices">
<xc:XmlCacheArea xc:value="MarketParameters">
<mp:nickName xc:value="GLBORF" xc:subset="Reference">
<mp:date xc:value="TODAY">
<sc:security>
<scpr:price>
<scpr:type xc:value="Index">
<scpr:market xc:value="FB">
<scpr:label xc:value="SEB IMMOINVEST">
<scpr:maturity xc:value="SPOT" xc:type="Fields">
<mp:lst xc:type="Field" xc:keyFormat="N">23.14</mp:lst>
<mp:quotation xc:type="Field">PRICE</mp:quotation>
<mp:ask1 xc:type="Field" xc:keyFormat="N">23.14</mp:ask1>
<mp:max xc:type="Field" xc:keyFormat="N">23.14</mp:max>
<mp:clo xc:type="Field" xc:keyFormat="N">23.14</mp:clo>
<mp:min xc:type="Field" xc:keyFormat="N">23.14</mp:min>
<mp:bid1 xc:type="Field" xc:keyFormat="N">23.14</mp:bid1>
</scpr:maturity>
</scpr:label>
</scpr:market>
</scpr:type>
</scpr:price>
</sc:security>
</mp:date>
</mp:nickName>
</xc:XmlCacheArea>
</xc:XmlCache>
これは私のXSLです:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/1999/XSL/Format ">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
XmlCacheArea,nickName,date,type,market,label,maturity, lst,quotation,ask1, max,clo,min,bid1
<xsl:for-each select="//XmlCacheArea">
<xsl:for-each select="//nickName">
<xsl:for-each select="//date">
<xsl:for-each select="//type">
<xsl:for-each select="//market">
<xsl:for-each select="//label">
<xsl:for-each select="//maturity">
<xsl:value-of select="concat(XmlCacheArea,',',nickName,',',date,',',type,',',market,',',label,',',maturity,',', lst,',',quotation,',',ask1,',', max,',',clo,',',min,',',bid1,'
')"/>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
これは私が取得しています出力されます:
XmlCacheArea nickName date type market label maturity lst quotation ask1 max clo min bid1 23.14 PRICE 23.14 23.14 23.14 23.14 23.14
そして、これは私が欲しいものですO得る:
XmlCacheArea nickName date type market label maturity lst quotation ask1 max clo min bid1 MarketParameters GLBORF TODAY Index FB SEB IMMOINVEST SPOT 23.14 PRICE 23.14 23.14 23.14 23.14 23.14
私は、foreachループ内のタグから値を盗んすることができません。
誰かお手伝いできますか?
種類よろしく
感謝!私はそれを祖先の代わりに../../などを使ってやっていました。 あなたのソリューションは明らかに私を改善します – SCouto