XMLとXSLTの新機能です。私は数時間の間Googleを検索しましたが、まだこれを把握していません....名前がコロンであるノードをCSVに解析するXSLT
私が解析しようとしているXMLコードのスニペットです。
<?xml version="1.0"?>
<gam:gameboxscore xmlns:gam="http://leaguemanager.beacontender.com/plugin/feed/sport/usftbl/gameboxscore">
<gam:lastUpdatedOn>2017-01-08 12:22:22 AM</gam:lastUpdatedOn>
<gam:game>
<gam:date>2017-01-07</gam:date>
<gam:time>8:15PM</gam:time>
<gam:awayTeam>
<gam:ID>61</gam:ID>
<gam:City>Detroit</gam:City>
<gam:Name>Lions</gam:Name>
<gam:Abbreviation>DET</gam:Abbreviation>
</gam:awayTeam>
<gam:homeTeam>
<gam:ID>79</gam:ID>
<gam:City>Seattle</gam:City>
<gam:Name>Seahawks</gam:Name>
<gam:Abbreviation>SEA</gam:Abbreviation>
</gam:homeTeam>
<gam:location>CenturyLink Field</gam:location>
</gam:game>
<gam:quarterSummary>
<gam:quarter number="1">
<gam:awayScore>0</gam:awayScore>
<gam:homeScore>0</gam:homeScore>
<gam:scoring/>
</gam:quarter>
<gam:quarter number="2">
<gam:awayScore>3</gam:awayScore>
<gam:homeScore>10</gam:homeScore>
<gam:scoring>
<gam:scoringPlay>
<gam:time>7:46</gam:time>
<gam:teamAbbreviation>SEA</gam:teamAbbreviation>
<gam:playDescription>(7:14) R.Wilson pass short right to P.Richardson for 2 yards, TOUCHDOWN. Penalty on DET-T.Wilson, Defensive Pass Interference, declined.</gam:playDescription>
</gam:scoringPlay>
</gam:scoring>
</gam:quarter>
</gam:quarterSummary>
<gam:gameboxscore
ここは私のXSLTコードです。私はXMLファイルからCSVを作成しようとしています。これはCSVを作成しますが、定義された列ヘッダーと実際のデータはありません。
<xsl:stylesheet version="2.0" xmlns:gam="http://leaguemanager.beacontender.com/plugin/feed/sport/usftbl/gameboxscore"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="text" version="1.0" encoding="UTF-8" indent="no"/>
<xsl:template match="/">
<xsl:text<GameDate;AwayTeam;HomeTeam;ScoringTeam;playDescription</xsl:text>
<xsl:text> </xsl:text>
<xsl:for-each select="/gam:gameboxscore">
<xsl:text>"</xsl:text>
<xsl:value-of select="../gam:game/gam:date"/>
<xsl:text>";"</xsl:text>
<xsl:value-of select="../gam:game/gam:awayteam/gam:Abbreviation"/>
<xsl:text>";"</xsl:text>
<xsl:value-of select="../gam:game/gam:hometeam/gam:Abbreviation"/>
<xsl:text>";"</xsl:text>
<xsl:value-of select="../gam:quartersummary/gam:quarter/gam:scoring/gam:scoringplay/gam:teamabbreviation"/>
<xsl:text>";"</xsl:text>
<xsl:value-of select="../gam:quartersummary/gam:quarter/gam:scoring/gam:scoringplay/gam:teamabbreviation"/>
<xsl:text>"</xsl:text>
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
あなたのXMLとXSLTの両方が構文エラーを持っています。 XMLの最後の行は ' gam:gameboxscore>'タグでなければならず、XSLTではヘッダーを出力する行が悪いです。これをあなたの実際のファイルからコピー/ペーストしましたか、それとも再入力しましたか?再入力した場合は、投稿を編集して_acutal_ XMLとXSLTにコピー&ペーストしてください。構文上の問題以外にも別の問題があります。あなたのXSLTは、複数の ''セクションを持つことを想定していますが、そのタグがルートであり、ルートが1つしかないことはできません。解決策は簡単ですが、実際のXMLとXSLTを投稿する必要があります。 –
ところで、私のコメントは個人的には取らないでください。あなたは実際に非常に良い最初の質問を投稿しました。私はあなたが実際に達成しようとしていることを理解するとすぐに答えを得たいと思っています。 –
実際、必要に応じて、結果は1行csvになります。 XMLには多くの ''ノードがあると思います。 –
Parfait