(親)listitem内の(子)listitemから、(親)のlistitemのデータ内容を取得したい。

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
mojira
パワーユーザー
記事: 34
登録日時: 2007年8月08日(水) 11:41

(親)listitem内の(子)listitemから、(親)のlistitemのデータ内容を取得したい。

投稿記事 by mojira » 2008年5月28日(水) 22:04

表題の内容なのですが、具体的には親リスト(a-list)内の子リスト(b-list)から、親リストの内容を取得する方法を知りたいのです。

コード: 全て選択

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entry">

<xsl:for-each select="a-list/listitem">

<xsl:for-each select="b-list/listitem">

<img src="{photo}" />

<xsl:value-of select="a-list/listitem/title" disable-output-escaping="yes" />

</xsl:for-each>

</xsl:for-each>

</xsl:template>
</xsl:stylesheet>
上記の
<xsl:value-of select="a-list/listitem/title" disable-output-escaping="yes" />
の記述のような感じで、親リストアイテム内のデータ項目(title)を取得するような方法はありますでしょうか?

お忙しいとは思いますが何卒、宜しくお願い申上げます。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: (親)listitem内の(子)listitemから、(親)のlistitemのデータ内容を取得したい。

投稿記事 by webmaster » 2008年5月29日(木) 18:08

mojiraさん、ご質問ありがとうございます。
webmasterです。

b-listの各listitemを現在位置とすると、その階層表現は次のようになります。

/entrylist/entry/a-list/listitem/b-list/listitem/

なので、この位置から a-list/listitem/title を取得する場合には、次のように
記述することができます。

コード: 全て選択

../../title
「..」(ドット二つ)は、「1つ上の階層」を表します。

「../」で、b-listの位置、さらに「../../」で a-list/listitem の位置に戻る
事ができます。そこへさらに title をつければOKというわけです。

もしうまくいかなかったり、よくわからない点がございましたら、またご連絡
頂ければ幸いです。

mojira
パワーユーザー
記事: 34
登録日時: 2007年8月08日(水) 11:41

できました!

投稿記事 by mojira » 2008年5月30日(金) 09:30

webmasterさまへ

大変丁寧にお教えいただき、ありがとうございました!
お陰様で思っていた事ができるようになりました。

今後とも宜しくお願いもうしあげます。

返信