Apache Freemarker - 获取重复节点和子节点
Apache Freemarker - Get repeating nodes along with child nodes
我正在使用 Apache Freemarker,目前我想使用 xPath 方法解析以下 xml 结构。
<book>
<title>Test Book</title>
<chapter>
<title>Ch1</title>
<para>p1.1</para>
<para>p1.2</para>
<para>p1.3</para>
</chapter>
<chapter>
<title>Ch2</title>
<para>p2.1</para>
<para>p2.2</para>
</chapter>
</book>
我想在HTML输出中动态显示chapter
节点的子节点。
我想要的输出如下所示:
Ch1
p1.1
p1.2
p1.3
Ch2
p2.1
p2.2
如果有人可以帮助我提供有关如何使用 xPath 方法实现此功能的代码片段,那就太好了。
我确实尝试过以下失败的方法:
<#list xml["//chapter/child::text()"] as p >
<p>${p["title"]}</p>
</#list>
看来您可能需要嵌套列表:
<#list xml["//chapter"] as t>
${t.title}
<#list t[".//para"] as p>
${p}
</#list>
</#list>
输出是您的预期输出。
我正在使用 Apache Freemarker,目前我想使用 xPath 方法解析以下 xml 结构。
<book>
<title>Test Book</title>
<chapter>
<title>Ch1</title>
<para>p1.1</para>
<para>p1.2</para>
<para>p1.3</para>
</chapter>
<chapter>
<title>Ch2</title>
<para>p2.1</para>
<para>p2.2</para>
</chapter>
</book>
我想在HTML输出中动态显示chapter
节点的子节点。
我想要的输出如下所示:
Ch1
p1.1
p1.2
p1.3
Ch2
p2.1
p2.2
如果有人可以帮助我提供有关如何使用 xPath 方法实现此功能的代码片段,那就太好了。
我确实尝试过以下失败的方法:
<#list xml["//chapter/child::text()"] as p >
<p>${p["title"]}</p>
</#list>
看来您可能需要嵌套列表:
<#list xml["//chapter"] as t>
${t.title}
<#list t[".//para"] as p>
${p}
</#list>
</#list>
输出是您的预期输出。