
たとえば、
<root>
<test>
<a>あああああああああああああ<bold>いいいい</bold>あああああああ</a>
<test>
<test>
<a>ううううううう<bold>えええええ</bold>ううううう</a>
<test>
</root>
こんなxmlがあった場合、
<bold>ではさまれた部分を
htmlの<b>に置き換えることは可能なのでしょうか。
ただしちゃんと<a>の要素の中としてです。
<bold>部分だけ取り出してではなく。
つまり、
<p>あああああああああああああ<b>いいいい</b>あああああああ</p>
<p>ううううううう<b>えええええ</b>ううううう</p>
みたいな出力を得たいです。
No.2ベストアンサー
- 回答日時:
=========source.xml=============
<?xml version="1.0" encoding="UTF-8"?>
<root>
<test>
<a>あああああああああああああ<bold>い<strong>い</strong>いい</bold>あああああああ</a>
</test>
<test>
<a>ううううううう<bold>えええええ</bold>ううううう</a>
</test>
</root>
=============transform.xsl===============
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output indent="yes" />
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="test">
<xsl:apply-templates select="@*|node()"/>
</xsl:template>
<xsl:template match="bold">
<xsl:element name="b">
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="a">
<xsl:element name="p">
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
====================result.xml===================
<?xml version="1.0" encoding="UTF-16"?>
<root>
<p>あああああああああああああ<b>い<strong>い</strong>いい</b>あああああああ</p>
<p>ううううううう<b>えええええ</b>ううううう</p>
</root>
No.3
- 回答日時:
補足。
>#1さん
もとのXMLファイルが
<?xml version="1.0" encoding="UTF-8"?>
<root>
<test>
<a>あああああああああああああ<bold width="15px">いbold<strong>い</strong>いい</bold>あああああああ</a>
</test>
<test>
<a>ううううううう<bold>えええええ</bold>ううううう</a>
</test>
</root>
だったら?
【bold要素の中のテキスト『いbold』の『bold』は変換してはいけない】
ちなみに俺の奴の場合,
<bold width="15px">いbold<strong>い</strong>いい</bold>
→<b width="15px">いbold<strong>い</strong>いい</b>
と、属性はそのまま保持される。
(単純に<bold>を<b>に変換したものとは異なる。まあこの程度の変換なら正規表現なんかを使って出来るかもしれないけどね。)
#各XML,XSLTにおいて名前空間に関する検討はしていないので注意。
#あと、HTMLにおいてb要素にはたぶんwidth属性がない、ということや、Strictでないソースだということは理解しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XMLを作成してもタグしか表示さ...
-
XMLデータを変換し印刷する方法
-
公文書のxmlファイルの開き方が...
-
論文に載せるグラフを作成したい
-
ChatGPT excel
-
XML、XSLTの適応エラー(IEから...
-
XMLサイトマップの登録方法がわ...
-
タモリさんを信じられますか?
-
自分のHTMLサイトでRSSを読み込...
-
ゲーミングPCに入っているAlris...
-
【BAT(バッチ)ファイル】Web...
-
XMLとは何ですか?
-
特殊文字の検索方法
-
フォルダー内検索
-
Webページに関するさまざまな情...
-
head要素
-
ヤフー知恵袋みたいなサイトを...
-
メールアドレスについて
-
マスターノード
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
xmlのテキストにリンクを張りた...
-
タグの有無の判定
-
XSLTにてタグ名を取得する方法
-
XMLをXSLを使いHTMLに変換した...
-
XSLで、XMLの空タグを制御したい。
-
XSLTで固定長データファイルを...
-
XMLとXSLTでリンクを張る方法
-
ある文字列を含むノードが存在...
-
XMLのスタイルシートで単独タグ...
-
XSL内でJavaScriptを記述し、Ja...
-
XMLからcsvへの変換
-
スタイルシートを使用したXM...
-
xmlから吐き出したhtmlデータの...
-
うまく表示されない
-
空かスペースを認識させること...
-
xslでの最小値、最大値の取得
-
XMLのHTMLへの変換 (初心者)
-
XSLでノードの順番取得
-
htmlに変換されない
-
CPUの考え方を教えてください ...
おすすめ情報