• ベストアンサー

値の空ノードの削除

「1」のXMLを「2」に変換したいのですが、xsltの記載方法をお教えください。 「1」 <?xml version="1.0" encoding="utf-8"?> <root> <aaa_cd id="XXX"> <aaa_name>XXX</car_gd_cd> <bbb_cd /> <bbb_cd>Y1</bbb_cd> <bbb_cd /> <bbb_cd>Y2</bbb_cd> <bbb_cd /> </aaa_cd> </root> ↓ 「2」 <?xml version="1.0" encoding="utf-8"?> <root> <aaa_cd id="XXX"> <aaa_name>XXX</car_gd_cd> <bbb_cd>Y1</bbb_cd> <bbb_cd>Y2</bbb_cd> </aaa_cd> </root>

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

  • ベストアンサー
  • talepanda
  • ベストアンサー率58% (45/77)
回答No.1

<aaa_name>XXX</car_gd_cd>は<aaa_name>XXX</aaa_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="xml"/> <xsl:template match="@*|node()"> <xsl:if test=".!=''"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:if> </xsl:template> </xsl:stylesheet>

takashi_it
質問者

お礼

おぉ~、一発解決! なるほど、ありがとうございました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

<?xml version="1.0" encoding="SHIFT_JIS" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:output method="xml" omit-xml-declaration="no" encoding="UTF-8" indent="yes" version="1.0"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="bbb_cd[string-length(text())=0]"> </xsl:template> </xsl:stylesheet>

関連するQ&A