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 表达式指定要处理的节点集 - 在本例中 row
在 form
和 table
下。
函数分配的内容将为每个(因此得名)匹配的节点执行/重复。
如果有 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?
我有一个 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 表达式指定要处理的节点集 - 在本例中 row
在 form
和 table
下。
函数分配的内容将为每个(因此得名)匹配的节点执行/重复。
如果有 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?