• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:XMLからcsvへの変換)

XMLからcsvへの変換方法とは?

このQ&Aのポイント
  • XMLのフィールドの項目をxslを使ってcsvへ変換する方法について教えてください。
  • copy condition以降の箇所は必要ないとのことです。
  • xslファイルのテンプレートとマッチングについても教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • dscripty
  • ベストアンサー率51% (166/325)
回答No.2

わかってしまえば、なんてことないんだけど、 ポイントは、値が必要な field 要素の一つ上の要素(Book)から、相対パスで field 要素を指定するところで、このとき select の条件に name 属性の条件も含めればいいだけ。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text" encoding="UTF-8"/> <xsl:template match="/">   <!-- 省略 -->   <xsl:apply-templates select="//Book" /> </xsl:template> <!-- csv のレコードを出力する処理 --> <xsl:template match="Book"> <xsl:value-of select="field[@name='keywords']"/>,<xsl:value-of select="field[@name='listName']"/>,<xsl:value-of select="field[@name='publisher']"/>,...(省略)..,<xsl:value-of select="field[@name='isbn13']"/><xsl:text> </xsl:text> </xsl:template> </xsl:stylesheet>

izaq
質問者

お礼

dscripty様 お礼が遅くなりすみませんでした。 filedの要素の指定でselect条件に name属性の条件を含めるのが鍵ですね。 ご教示いただいた方法で、変換がうまくいきました。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.1

> 各field nameを抽出するのがうまくいきません。 ↓ 『各field name に対応する値を抽出する方法がわかりません』 という質問? それとも、 単に 『要素の属性を XPATH で指定する方法』 がわからないだけ?

izaq
質問者

補足

dscripty様 『各field name に対応する値を抽出する方法がわかりません』 という質問になります。 分かりにくくてすみません。 記載したxmlの中には実際の値が入りますが、質問のxmlの中では削除しております。 このxml内の各field nameの値を取り出して、csvに変換できればと思います。 よろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A