- PR -

xmlのデータ抽出について

1
投稿者投稿内容
ぴた
会議室デビュー日: 2007/01/11
投稿数: 4
投稿日時: 2007-01-11 06:30
質問をもう一度入れなおします。なにぶん初心者なもので質問の仕方も下手でもうしわけありません。

<day>
<11>ああああ</11>
<12>いいいい</12>
<13>うううう</13>
</day>
このようなXMLから、今日の日付のデータ <11>ああああ</11> を抽出して表示したいと考えていました。javaに関しても xsltに関しても勉強を始めたばかりのド素人です。
下記のようにHTMLにjavaを書く感覚で書いてみたのですが うまく動きません。

ご教授いただけないでしょうか。


<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="Shift_JIS" />
<xsl:template match="/">
<html>
<head>
<script language="JavaScript">
function day_change(){
myDate = new Date();
myday = myDate.getDate();
document.write(myday);
}
</script>
</head>
<body>
<xsl:value-of select="<script language="JavaScript"> day_change()</script>" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>


追加
JavaScriptのことをjavaって書いてしまっていました。javaを勉強してみます。
恥ずかしい質問をしてしまいすいません。
できれば JavaScriptでなんとかなるようであれば お教えいただけないでしょうか

よろしくお願いいたします。



[ メッセージ編集済み 編集者: ぴた 編集日時 2007-01-11 06:33 ]


[ メッセージ編集済み 編集者: ぴた 編集日時 2007-01-11 11:02 ]
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-01-11 09:08
・日付を取得する方法
・11日であるかどうか判断する方法
・<11>ああああ</11>を取得する方法
・<11>ああああ</11>を表示させる方法
・xsl の文法
などと、色々な要素があると思いますがどれがわかりませんか?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-01-11 10:04
XSLT から java のメソッド呼び出しを行う方法はわかるけども、Java のメソッド内から当該 XML にアクセスできるかどうか?

という質問でしょうか?
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2007-01-11 13:04
 まずXMLの要素名の先頭文字に数字は使えないので何か"a"でもつけておく必要があります。

 たぶんAppletなどでJavaを呼び出すのではなくXSLとJavaScriptでブラウザで表示したいのだと理解しましたが、HTMLはあまり詳しくないので、Scriptの記述など正しくないかもしれません。
 とりあえずInternet Exploreで以下のxmlを開くと日付に対応する要素の内容だけのテキストが表示されます。XSLT展開中にスクリプト動作させる方法は知らないので、
すべての要素にスクリプト判定を入れて表示させるHTMLを作成して、展開したものの中でスクリプトを動かしており、冗長かもしれません。

-- test.xml --
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet href="test.xsl" type="text/xsl"?>
<day>
<a10>aaa</a10>
<a11>bbb</a11>
<a12>ccc</a12>
</day>

-- test.xsl --
<?xml version='1.0' encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml/strict">
<xsl:attribute-set name="type">
<xsl:attribute name="type">text/javascript</xsl:attribute>
</xsl:attribute-set>

<xsl:template match="/day">
<html><head>
<meta http-equiv="Content-Type" content="text/html;charset=shift_jis"/>
<script>
d=new Date();
date="a" + d.getDate();
</script>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>

<xsl:template match="/day/*">
<xsl:element name="script" xsl:use-attribute-sets="type">
<xsl:text>if (date=="</xsl:text><xsl:value-of select="name()"/><xsl:text>") {
document.write("</xsl:text><xsl:value-of select="."/><xsl:text>");
}
</xsl:text>
</xsl:element>
</xsl:template>
</xsl:stylesheet>






ぴた
会議室デビュー日: 2007/01/11
投稿数: 4
投稿日時: 2007-01-12 04:10
素人な質問にも関わらず ご丁寧な対応に感謝いたします。
ほんとありがとうございました。助かりました。

1

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