- PR -

XMLをsubstringしたいです。

1
投稿者投稿内容
タラン
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 138
投稿日時: 2004-06-08 17:59
いつもお世話になっております。

環境はどこでもできると思いまして省略させていただきます。

xmlのあるタグのデータの一部をとりたいですが
そのデータの中のタグごととりたいです。

</a>があるところまでとりたいです。
でもまず<text>タグに<img>タグがあるのが問題です。DOWNLOAD(例文の)という文字をとりたくても<img>タグは抜きではとれるんです。DOWNLOADしかとれませんでした。
「<img src="/icon.gif"/><a href="/e.pdf">DOWNLOAD」がとりたいです。

XMLは初めての挑戦なので難しいです。 ずっと悩んでも解決できなくて
投稿させていただきました。

とんでもない質問かもしれませんがよろしくお願いします。


例:

a.xml

<text>
<img src="/icon.gif"/>
<a href="/e.pdf">DOWNLOAD</a>Tokyo, June 7, 2004 featuring
</text>

b.xsl
<td width="50%">
  <xsl:value-of select="substring-before(/text, '/a')" />
</td>




[ メッセージ編集済み 編集者: ヒデミ 編集日時 2004-06-09 09:15 ]
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-06-08 18:27
引用:

ヒデミさんの書き込み (2004-06-08 17:59) より:
環境はどこでもできると思いまして省略させていただきます。


環境というか、どのように取ろうとしているかをはっきりさせてください。
XSLTですか? DOMやSAXですか? 出力形態はなんですか?

引用:

でもまず<text>タグに<img>タグがあるのが問題です。DOWNLOAD(例文の)という文字をとりたくても<img>タグは抜きではとれるんです。DOWNLOADしかとれませんでした。


この「DOWNLOADを取れた」処理を明示していただければいいと思いますが。
タラン
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 138
投稿日時: 2004-06-09 09:13
ご回答ありがとうございます。

XML XSLを使うって言ったら答えになりませんか。
初めてなので何がなんだかよく分かりません。
特にXSLT、DOM、SAXなどの言葉は。。。

多分XSLTだとは思いますが。。。(XMLの内容をXSLを使って表示するってことです。)

やりたいことはXMLのデータの中で一つのタグのデータをある文字で区切ってとりたいですが。

(XMLは修正でいない状況なので苦労してます。)

「<img src="/icon.gif"/> <a href="/e.pdf">DOWNLOAD</a>Tokyo, June 」がとりたいですが下記の例のようにXSLを作成すると「DOWNLOADTokyo, June 」これしかとれませんでした。
途中にある<img>タグとかのデータもまるごととりたいですが。。。

例:

a.xml

<text>
<img src="/icon.gif"/>
<a href="/e.pdf">DOWNLOAD</a>Tokyo, June 7, 2004 featuring
</text>

b.xsl
<td width="50%">
  <xsl:value-of select="substring-before(/text, '7')" />
</td>


質問がめちゃくちゃでごめんなさい。

よろしくお願いします。





[ メッセージ編集済み 編集者: ヒデミ 編集日時 2004-06-09 09:14 ]
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-06-09 12:35
引用:

ヒデミさんの書き込み (2004-06-08 17:59) より:

xmlのあるタグのデータの一部をとりたいですが
そのデータの中のタグごととりたいです。




これでは、「とりたい」の意味が不明です。

  • ブラウザで表示したい
  • ファイルに出力したい
  • プログラム(Java?.net? etc..)中で変数に格納したい

等々、いろいろ考えられますが、どれなんでしょう?
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-06-09 14:26
引用:

ヒデミさんの書き込み (2004-06-09 09:13) より:
ご回答ありがとうございます。
  <xsl:value-of select="substring-before(/text, '7')" />
</font>


「textタグに囲まれた要素を取得するXSLの書き方」と解釈して回答します。
単純にやれば、

<xsl:copy-of select="/text/img" />
<xsl:copy-of select="/text/a" />
<xsl:copy-of select="/text/text()" />

で取れると思います。ですが、もしtext以下全要素であれば、

<xsl:copy-of select="/text/*" />
<xsl:copy-of select="/text/text()" />

でできるでしょう。
タラン
大ベテラン
会議室デビュー日: 2004/03/17
投稿数: 138
投稿日時: 2004-06-09 17:28
ご回答ありがとうございました。

とりたいって意味はトークンして別々に表示したかったです。

意味不明な質問で申し訳ありませんでした。

自分もよく分かってないのにやろうとしたので。。。。

結果報告です。

uk様のおかげで解決しました。

ありがとうございました。

これからも宜しくお願いします。


1

スキルアップ/キャリアアップ(JOB@IT)