具有相同值的相同类型的节点的聚合属性

时间:2015-10-23 14:35:15

标签: xslt attributes aggregate

我有这个问题:

<?xml version="1.0" encoding="utf-16"?>
<root>
    <container>
        <Facility count="1" normalied="Mauritius Branch Campus">Mauritius Branch Campus</Facility>
        <Facility count="1" relevance="0.2">Mauritius Branch Campus</Facility>
        <Country count="1" relevance="0.8">Mauritius</Country>
        <Country count="1" normalized="Mauritius">Mauritius</Country>   
    </container>
</root>

我想要达到的目的是:

<?xml version="1.0" encoding="utf-16"?>
<root>
    <container>
        <Facility count="1" relevance="0.2" normalied="Mauritius Branch Campus">Mauritius Branch Campus</Facility>
        <Country count="1" relevance="0.8" normalized="Mauritius">Mauritius</Country>
    </container>
</root>

在示例中,e仅报告了<Facility><Country>等元素,但可能更多,与属性类型相同。

有没有办法通过XSLT实现这一目标?

提前致谢。

[R

1 个答案:

答案 0 :(得分:0)

使用像Saxon 9这样的XSLT 2.0处理器,您可以使用for-each-group,以下代码首先按node-name(.)分组(假设您只想将所有Country和所有{{1}分组一起,但不是不同名称的元素),然后是字符串内容:

Facility

http://xsltransform.net/pPzifp3的在线演示。