JSTLで、x:out でXpathを指定してのxmlの要素表示ができません。
度々の質問で申し訳ございませんが、どなたか分かる方がいらっしゃいましたら教えて下さい。
※前に投入していた質問は削除させて頂きました。
質問を回答途中であった方にはお詫び申し上げます。大変申し訳ございません。
本題ですが、JSTLのx:out でXpathを指定してのxmlの要素表示ができません。
使用しているソースは下記の通りです。
----
<%@ page language="java" contentType="text/html;charset=Windows-31J"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
<html><body>
<c:set var="greeting">
<?xml version="1.0"?>
<greeting>hello, world</greeting>
</c:set>
<x:parse var="xml" doc="${greeting}" />
<x:out select="$xml/greeting" />
</body></html>
----
この画面を表示させようとすると、下記のエラーが出てしまいます。
----
org.apache.jasper.JasperException: Exception in JSP: /jsp/html/xmltest_003.jsp:14
11: <greeting>hello, world</greeting>
12: </c:set>
13: <x:parse var="xml" doc="${greeting}" />
14: <x:out select="$xml/greeting" />
15:
16: </body></html>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
原因
javax.servlet.ServletException: org/apache/xpath/XPathException
----
XPathExceptionと出ているので、xpathの指定がおかしいのだと思うのですが、
<x:out select="${xml/greeting}" />
<x:out select="${xml/greeting/text()}" />
<x:out select="$xml/greeting/text()" />
<x:out select="${xml}/greeting" />
<x:out select="${xml}/greeting/text()" />
とやってみてもエラーが表示されます。
----
c:outは下記で出力できますので、taglibは正常に動いていると思われます。
<%@ page language="java" contentType="text/html;charset=Windows-31J"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html><body>
<c:set var="data" value="てすと!!" />
<c:out value="${data}" />
${data}
</body></html>
----
web.xmlの冒頭は、
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
に変更しました。
----
web.xmlには<web-app>タグ内の最後に下記の記述を追加しました(抜粋)。
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/xml</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
</web-app>
----
WinXP/Eclipse3.3/Tomcat5.5/GEF3.3/struts-1.3.8/JDK1.5/JSTL1.1.2で動かしています。
----
どなたかこのエラーについての解決の糸口などがここら辺りでは? とお分かりになる方がいらっしゃいましたら、ご教授頂ければ幸いです。
初歩的な質問で大変恐縮ですが、宜しくお願い致します。