Announcement

Collapse
No announcement yet.

XPath: Wie multipliziere ich 2 Attribute eines Knotens?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XPath: Wie multipliziere ich 2 Attribute eines Knotens?

    Hallo,

    ich suche nach einem (einfachen) XPath Ausdruck, der mir 2 Attribute (@colspan, @rowspan) von einem 'td' Knoten (mit diesen 2 Attributen) miteinander multipliziert. Anschließend sollte das Ergebnis für alle Knoten mit den 2 Attributen aufsummiert werden.

    D.h. prinzipiell suche ich nach etwas in der Art (funktioniert so aber nicht ; liefert 'NaN'):

    Sum(//td[@colspan and @rowspan]/@colspan*@rowspan)

    Vielen Dank!
    Michael

    PS: Was ich vermeiden möchte sind Ausdrücke in der Art:
    (Sum(//td[@colspan and @rowspan][1]/@colspan) * (Sum(//td[@colspan and @rowspan][1]/@rowspan)

    Denn dann müßte ich zuerst die Anzahl der Knoten bestimmen (-> gibt den Index). Und dann für jeden Index obige Formel ausführen und anschließend aufsummieren...

  • #2
    Die sum()-Funktion lässt sich nur auf Knotenmengen anwenden. Unter XSLT/XPath 1.0 müsste man das rekursiv lösen, unter XSLT/XPath 2.0 geht das eleganter:
    Code:
    fn:sum(for $td in //td[@colspan and @rowspan] return $td/@colspan * $td/@rowspan)
    Hier wird zunächst eine Sequenz mit den Produkten erzeugt und darauf dann die sum()-Funktion angewendet.

    Comment


    • #3
      Vielen Dank, Thomas!

      Comment

      Working...
      X