xsl或xsl-fo来处理动态xml

时间:2015-02-13 16:42:25

标签: xml xslt dynamic xsl-fo

我有一个xml文件,它可以是动态的(意味着在下面的xml示例中行数可以是0,1,2或许多)。 xsl(或xsl-fo)如何处理这种情况?任何例子或指针都将不胜感激。

<form>
    <table>
        <row>
            <date>2012-02-10</date>
            <departure>Boston</departure>
            <arrival>NYC</arrival>
            <typeOfTransport>Flight</typeOfTransport>
            <estimatedCost>$300.00</estimatedCost>
        </row>
        <row>
            <date>2012-02-12</date>
            <departure>NYC</departure>
            <arrival>Boston</arrival>
            <typeOfTransport>Flight</typeOfTransport>
            <estimatedCost>$200.00</estimatedCost>
        </row>
    </table>
</form>

1 个答案:

答案 0 :(得分:1)

它将使用XSL for-each(用于重用多个匹配的XML元素等):

<xsl:for-each select="form/table/row">
  <!-- Content -->
</xsl:for-each>

它使用XPath表达式指定要处理的节点集 - 在本例中rowform下的table

函数分配的内容将对每个(因此名称)匹配的节点执行/重复。

如果没有(0 row s)则不会被叫。对于两个row,它会被调用两次。

许多人会将其称为for-each&#34; loop&#34; - 但这是一个误称(因为它不是一个循环,因此无法从XSL中break出来 - 因为它不是一个循环)。

参见W3Schools教程:

http://www.w3schools.com/xsl/el_for-each.asp

另见这个问题,它可以帮助您了解您正在做的事情的范围/背景:

What's the difference between XSLT and XSL-FO?