Xml 获取属性(如果可用),否则为元素
我正在使用XSLT处理一个XML文件,我希望获得每个项目的属性列表,其中包含以下属性:Xml 获取属性(如果可用),否则为元素,xml,xslt,Xml,Xslt,我正在使用XSLT处理一个XML文件,我希望获得每个项目的属性列表,其中包含以下属性: 如果设置了属性aaa,则取该属性的值 如果未设置属性aaa,则取元素的值 从结果集中,仅获取不同的值 下面是一个XML示例 <items> <item> <properties> <property aaa="">pA</property> <property aaa=
- 如果设置了属性aaa,则取该属性的值
- 如果未设置属性aaa,则取元素的值
- 从结果集中,仅获取不同的值
<items>
<item>
<properties>
<property aaa="">pA</property>
<property aaa="pB">pC</property>
<property aaa="pA">pA</property>
</properties>
</item>
<item>
<properties>
<property aaa="">pD</property>
<property aaa="pE">pF</property>
</properties>
</item>
</items>
我的代码给我的是
pA#pB#pC#
pD#pE#pF#
有可能做到这一点吗?您使用的是
不同值这一事实表明您使用的是XSLT 2.0,因此您可以将XPath 2.0for
和if
构造结合起来:
distinct-values(
for $prop in properties/property
return if ($prop/@aaa != '') then $prop/@aaa else $prop
)
使用不同值这一事实表明您使用的是XSLT 2.0,因此您可以将XPath 2.0for
和if
构造结合使用:
distinct-values(
for $prop in properties/property
return if ($prop/@aaa != '') then $prop/@aaa else $prop
)
distinct-values(
for $prop in properties/property
return if ($prop/@aaa != '') then $prop/@aaa else $prop
)