处理动态xml的xsl或xsl fo
我有一个可以是动态的xml文件(在下面的xml示例中,行数可以是0、1、2或多行)。xsl(或xsl fo)如何处理这种情况?如有任何示例或提示,将不胜感激处理动态xml的xsl或xsl fo,xml,xslt,dynamic,xsl-fo,Xml,Xslt,Dynamic,Xsl Fo,我有一个可以是动态的xml文件(在下面的xml示例中,行数可以是0、1、2或多行)。xsl(或xsl fo)如何处理这种情况?如有任何示例或提示,将不胜感激 <form> <table> <row> <date>2012-02-10</date> <departure>Boston</departure> <ar
<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>
2012-02-10
波士顿
纽约市
航班
$300.00
2012-02-12
纽约市
波士顿
航班
$200.00
将为每个元素使用XSL(用于与多个匹配的XML元素等重用):
它使用XPath表达式指定要处理的节点集—在本例中,是表单
和表
下的行
函数分配的内容将针对每个匹配的节点(因此命名)执行/重复
如果没有(0行
s),则不会调用它。对于两个行
s,它将被调用两次
许多人将其称为for-each“循环”-但这是一个用词不当的说法(因为它不是循环,所以没有办法从XSL for-each中突破)
请参阅W3Schools教程:
另外,请看这个问题,它将帮助您了解您所做工作的范围/背景:
你的问题太宽泛了,你到底在问什么?xsl和xsl fo语言能否处理琐碎的xml对普通xslt和xsl fo处理器可以完成它们的工作吗?->是。@DeChar-如果输入数据很简单并且将来不需要扩展XSLT,我只建议对每个
(拉类型转换)使用xsl:。否则,如果使用推式转换,即使用xsl:apply templates
并覆盖内置模板来处理转换,那么扩展样式表就容易得多。许多人发现每个的比模板更容易阅读(这也带来了一些不太明显/隐含的功能)。如果他的需求发生变化,那么很容易进行重构。
<xsl:for-each select="form/table/row">
<!-- Content -->
</xsl:for-each>