JSPでXPath式の結果を変数に設定・利用する方法(x:setタグの使い方)
<x:set>タグは、XPath式の評価結果を変数に設定するために使用します。これにより、XMLドキュメントから取得した値をJSPページ内で再利用できるようになります。
XPath式の評価結果がブール値(boolean)であればjava.lang.Booleanオブジェクトが、文字列であればjava.lang.Stringが、数値であればjava.lang.Numberが、それぞれ変数に格納されます。
属性
<x:set>タグには、以下の属性があります。
| 属性 | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
| var | XPath式の評価結果が設定される変数名 | はい | Body |
| select | 評価対象となるXPath式 | いいえ | なし |
| scope | var属性で指定した変数のスコープ | いいえ | Page |
使用例
以下の例では、まず
<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "https://java.sun.com/jsp/jstl/xml" %>
<html>
<head>
<title>JSTL Tags</title>
</head>
<body>
<h3>Books Info:</h3>
<c:set var = "xmltext">
<books>
<book>
<name>Padam History</name>
<author>ZARA</author>
<price>100</price>
</book>
<book>
<name>Great Mistry</name>
<author>NUHA</author>
<price>2000</price>
</book>
</books>
</c:set>
<x:parse xml = "${xmltext}" var = "output"/>
<x:set var = "fragment" select = "$output//book"/>
<b>The price of the second book</b>:
<c:out value = "${fragment}" />
</body>
</html>
上記のJSPにアクセスすると、次のような結果が表示されます。
Books Info: The price of the second book:[[book: null], [book: null]]
このように、<x:set>タグを使用することで、XPath式による抽出結果を変数として保持し、他のJSTLタグやEL式から参照できるようになります。特定のノードだけを取り出したい場合は、select属性のXPath式を「$output/books/book[2]/price」のように絞り込むことで、より精度の高い値の取得が可能です。
-
【JSP入門】JSTLのx:ifタグでXPath式をテストする方法
JSPでXPath式をテストしたい場合、JSTL(JSP Standard Tag Library)のXMLタグライブラリが提供する<x:if>タグを利用できます。このタグは、test XPath式として指定した条件式を評価し、その結果がtrueの場合にのみタグ内のボディ(内容)を処理します。条件がfalseと評価された場合は、ボディは単純に無視され、何も出力されません。 <x:if>タグの属性一覧 <x:if>タグでは、以下の3つの属性を使用できます。 属性説明必須デフォルト値 select評価対象となるXPath式を指定しますはいなし var条件
-
Pythonの正規表現で変数を使う方法をわかりやすく解説
Pythonの正規表現(reモジュール)では、パターン文字列を作る際に文字列連結やf文字列を利用することで、変数の値をパターンの中に組み込むことができます。ただし、変数に含めてよいのは通常の文字列だけです。特殊文字やメタ文字、正規表現そのものが含まれると、意図しないマッチやエラーの原因になります。変数の内容が不定の場合は、re.escape() でエスケープしてから使うと安全です。サンプルコード次のコードは、文字列連結によって変数を正規表現パターンに埋め込む例です。import re s = I love books var_name = love result = re.search((.