
No.1ベストアンサー
- 回答日時:
<?xml version="1.0" encoding="UTF-8"?>
<data>
××××<a hide="hide">○○○○○<c>*****</c>○○○</a>・<a>◎◎◎◎◎<b hide="hide">●●●</b>▲▲▲▲</a>△△△△
</data>
==================================
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<test>
<xsl:apply-templates />
</test>
</xsl:template>
<xsl:template match="*">
<xsl:choose>
<xsl:when test="count(@hide) > 0">
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
============結果=====================
<?xml version="1.0" encoding="UTF-8"?>
<test>××××・◎◎◎◎◎▲▲▲▲△△△△</test>
=====================================
* 特に指示がなかったので、c要素のように「その要素自身にはhide属性はないが、その親にhide属性がある」ような要素は内容を表示しないことにした。特に指示がなかったので、その要素の名前空間(接頭辞がない奴)以外の「接頭辞のある属性」についてはhide属性としては扱わないものとしている。(今後指示がついてもやらないけど)
* 今考えると、xsl:apply-templatesのselect属性に指定するXPathで、hide属性のない要素だけが対象となるようにしてもよかったかも、とも思うがまぁいいや。
この回答への補足
<xsl:apply-templates select="data/text() | data//*[not(@hide='hide') and not(../@hide='hide')]/text()" />
のような形かな?っと思いますが、親階層にhide属性がある場合(複数階層の場合)、表示されてしまいます。
全ての親階層をたどり判断するようなことは出来ないのでしょうか?
ありがとうございました。
ずっと悩んでいたんですが、スッキリです。
>* 今考えると、xsl:apply-templatesのselect属性に指定するXPathで、hide属性のない要素だけが対>象となるようにしてもよかったかも、とも思うがまぁいいや。
出来たら、こっちのやり方も教えてもらえるとうれしいです。
今後の参考のために、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タグの有無の判定
-
XSLTにてタグ名を取得する方法
-
xmlのテキストにリンクを張りた...
-
XSLで、XMLの空タグを制御したい。
-
xslでの最小値、最大値の取得
-
XMLとXSLTでリンクを張る方法
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
ノードとは
-
複数のマックPCによる数値計算...
-
バッチファイルでテキストファ...
-
XML、XSLTの適応エラー(IEから...
-
動的な構造体配列の初期化
-
このエラー、何とかなりません...
-
ルート要素ノードが2個ある場合?
-
XMLファイル内のデータ(値)を変...
-
質問
-
東芝のDynabookなのですがアン...
-
順不同・任意のタグ
-
VBAでXMLを出力するプログラム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
タグの有無の判定
-
xmlのテキストにリンクを張りた...
-
XSL中の改行、タブを無効にした...
-
XSLでXMLデータをタブ区切りデ...
-
XSL内でJavaScriptを記述し、Ja...
-
XMLとXSLTでリンクを張る方法
-
空かスペースを認識させること...
-
XSLで、XMLの空タグを制御したい。
-
xmlから吐き出したhtmlデータの...
-
xsl:sortを子要素で
-
自動的にリンクを貼る・・・
-
xmlからの表示
-
2stepをくりかえす方法を教えて...
-
XMLからcsvへの変換
-
タグを置き換える
-
XMLのHTMLへの変換 (初心者)
-
スマートなxsltの記述方法
-
XSLスタイルシートについて
-
XSLTで固定長データファイルを...
-
htmlに変換されない
おすすめ情報