回答編集履歴
2
XSLT 3.0
test
CHANGED
@@ -57,3 +57,27 @@
|
|
57
57
|
|
58
58
|
|
59
59
|
もしも列の数が多くなるようなら、列出力をどこか一カ所で制御したほうがよいでしょう。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
なお、20 年以上も前のすり切れた規格である XSLT 1.0 ではなく、XSLT 3.0 を使ってもよいのなら、ほぼ 1 行で済みます:
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
```xml
|
68
|
+
|
69
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
70
|
+
|
71
|
+
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
72
|
+
|
73
|
+
<xsl:output method="text" />
|
74
|
+
|
75
|
+
<xsl:template match="/">
|
76
|
+
|
77
|
+
<xsl:text expand-text="yes">{postcode/city/town ! (((parent::city, .) ! @name, .) => string-join(' ')) => string-join('
')}
</xsl:text>
|
78
|
+
|
79
|
+
</xsl:template>
|
80
|
+
|
81
|
+
</xsl:stylesheet>
|
82
|
+
|
83
|
+
```
|
1
some backticks
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
XSLT で xsl:for-each を使った時点で、多くの場合、変なことをやってしまっていると考えたほうがよいと思います。
|
1
|
+
XSLT で `xsl:for-each` を使った時点で、多くの場合、変なことをやってしまっていると考えたほうがよいと思います。
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -6,9 +6,9 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
0. 各 town が行になるようなので、ドキュメント ノードから各 town にテンプレートを適用する。
|
9
|
+
0. 各 `town` が行になるようなので、ドキュメント ノードから各 `town` にテンプレートを適用する。
|
10
10
|
|
11
|
-
0. town のテンプレートでは、各列の間にスペースを入れて、行を出す。
|
11
|
+
0. `town` のテンプレートでは、各列の間にスペースを入れて、行を出す。
|
12
12
|
|
13
13
|
|
14
14
|
|