【发布时间】:2021-10-31 13:11:09
【问题描述】:
我想创建一个接受node 参数的XSLT 1.0 模板。该模板将连接每个节点的@lot、@plan_type 和@plan 属性,用逗号连接每个节点结果并输出一个字符串。请参阅下面的示例 XML。
<?xml version="1.0" encoding="UTF-8"?>
<RealEstate unique_id="045dcd20-0a69-4f2a-9bfa-c6b3e9b03281">
<Title id="23bccbb0-2699-44bf-a672-9d2a27344254"
instruction_id="10752681" is_primary="Yes" lot="184" plan="1212069"
plan_type="DepositedPlan" tenure_type="Freehold" type="Torrens" />
<Title id="045dcd20-0a69-4f2a-9bfa-c6b3e9b03281"
instruction_id="10752681" is_primary="No" lot="185" plan="1212073"
plan_type="DepositedPlan" tenure_type="Freehold" type="Torrens" />
<Title id="c6b3e9b0-4f2a-44bf-a672-23bccbb04254"
instruction_id="10752681" is_primary="No" lot="186" plan="1213002"
plan_type="DepositedPlan" tenure_type="Freehold" type="Torrens" />
</RealEstate>
Title 节点将被传递给node 参数。然后将循环每个Title 节点以构建和输出字符串Lot 184 DepositedPlan 1212069, Lot 185 DepositedPlan 1212073, Lot 186 DepositedPlan 1213002
【问题讨论】:
-
好吧,你试过什么?像
Title这样的元素节点实际上是使用路径Title选择的,名为lot的属性是使用@lot选择的,正如您已经展示的那样,连接值的函数被命名为concat,那么您在哪里卡住了? -
我看不出参数在这里扮演什么角色。您是否希望 Title 以外的元素具有相同的属性?
-
感谢马丁和迈克尔。参数的作用是使模板可以内联用作更大模板的一部分,并在 Altova MapForce 设计中“映射”输入和输出。
-
它也会更通用,因此如果将具有
@lot、@plan和@plan_type属性的<LandParcel />节点传递给模板,则输出将是相同的。 -
您使用哪个版本的 XSLT?