xsl 或 xsl-fo 来处理动态 xml

xsl or xsl-fo to handle dynamic xml

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

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

这将为每个使用一个 XSL(以便与多个匹配的 XML 元素一起重用等):

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

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

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

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

许多人将其称为 for-each "loop" - 但这是用词不当(无法从 XSL for-each 中 break,因为它不是循环)。

查看 W3Schools 教程:

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

另请参阅此问题,它将帮助您了解您正在做的事情的范围/上下文:

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