xml文書から必要な項目を取り出したい場合のxslファイルの記述について教えてください。例えば、


<root>
<people>
<name>山本太郎</name>
<pref>東京</pref>
<age>35</age>
</people>
<people>
<name>小林五郎</name>
<pref>東京</pref>
<age>33</age>
</people>
<people>
<name>中村一郎</name>
<pref>千葉</pref>
<age>33</age>
</people>
</root>

というようなファイルがある場合に
「prefが東京且つageが35(つまり山本太郎さん)]
の条件で抜き出す場合の条件式の書き方を教えていただけないでしょうか。prefとageの2つを使ってください。
宜しくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/04/05 21:06:34
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:bonlife No.1

回答回数421ベストアンサー獲得回数75

ポイント60pt

単純に条件が複数ある、ということでしょうか。

それならばxsl:ifのtestで指定条件をネストすれば良いだけだと思います。

出力はどういうイメージか分からなかったので、条件に合ったpeopleの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="text" encoding="UTF-8"/>
<xsl:template match="root">
	<xsl:apply-templates select="people" />
</xsl:template> 
<xsl:template match="people">
	<xsl:if test="pref='東京'">
		<xsl:if test="age=35">
			<xsl:value-of select="name" />
		</xsl:if>
	</xsl:if>
</xsl:template> 
</xsl:stylesheet>

この出力結果は

山本太郎

になります。

質問を読み違えている場合、ご指摘お願いいたします。

id:feynman

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

参考になりました。

2006/04/05 21:06:14

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません