簡體   English   中英

XSLT:聚合父節點中的子節點數據

[英]XSLT: Aggregate child nodes data in parent

假設我有以下節點:

<parent>
  <child size="1" />
  <child size="2" />
  <child size="3" />
</parent>

我想要在輸出文檔中得到的是子項大小的平均值,最小值和最大值。

<parent min-size="1" max-size="3" avg-size="2" />

是否可以將XSLT 1.0與EXSLT擴展一起使用?

這是使用math:max()math:min()的示例...

XSLT 1.0 (stylesheet.xsl)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:math="http://exslt.org/math"
  extension-element-prefixes="math">
  <xsl:output indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="parent">
    <parent min-size="{math:min(child/@size)}" 
      max-size="{math:max(child/@size)}" 
      avg-size="{sum(child/@size) div count(child/@size)}"/>
  </xsl:template>

</xsl:stylesheet>

蟒蛇

from lxml import etree

tree = etree.parse("input.xml")
xslt = etree.parse("stylesheet.xsl")

new_tree = tree.xslt(xslt)

print(etree.tostring(new_tree, pretty_print=True).decode("utf-8"))

產量

<parent min-size="1" max-size="3" avg-size="2"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM