Xml xslt问题
大家好,我有一个像bellow这样的xmlXml xslt问题,xml,vb.net,xslt,Xml,Vb.net,Xslt,大家好,我有一个像bellow这样的xml <NewDataSet> <Table> <CTD_REC_TYPE_ID>5</CTD_REC_TYPE_ID> <CTD_BEN_INS_ID>0048201515</CTD_BEN_INS_ID> <CTD_CURR_CODE>2</CTD_CURR_CODE> <CT
<NewDataSet>
<Table>
<CTD_REC_TYPE_ID>5</CTD_REC_TYPE_ID>
<CTD_BEN_INS_ID>0048201515</CTD_BEN_INS_ID>
<CTD_CURR_CODE>2</CTD_CURR_CODE>
<CTD_ORD_CUST_ACT>CACC</CTD_ORD_CUST_ACT>
<CTD_CTD_PKG_ID>6</CTD_CTD_PKG_ID>
</Table>
<Table>
<CTD_REC_TYPE_ID>5</CTD_REC_TYPE_ID>
<CTD_BEN_INS_ID>004820101</CTD_BEN_INS_ID>
<CTD_CURR_CODE>2</CTD_CURR_CODE>
<CTD_ORD_CUST_ACT>CACC</CTD_ORD_CUST_ACT>
<CTD_CTD_PKG_ID>6</CTD_CTD_PKG_ID>
</Table>
<Table>
<CTD_REC_TYPE_ID>5</CTD_REC_TYPE_ID>
<CTD_BEN_INS_ID>004820101</CTD_BEN_INS_ID>
<CTD_CURR_CODE>2</CTD_CURR_CODE>
<CTD_ORD_CUST_ACT>CACC</CTD_ORD_CUST_ACT>
<CTD_CTD_PKG_ID>3</CTD_CTD_PKG_ID>
</Table>
</NewDataSet>
5.
0048201515
2.
中国民航局
6.
5.
004820101
2.
中国民航局
6.
5.
004820101
2.
中国民航局
3.
在上面的xml中,每个表都必须集中
3
(包id)就像上面的例子一样,当谈到pkg id 6,6,3时,我们在xml中有三个表,6重复了两次,因为我将两个相似的表连接起来,作为一个csv文件,其余的pkg id为3,我们准备了单独的csv文件,所以我们需要编写xslt。如果需要,任何人都可以帮助我…尽快n
需要运行转换的不同输出文件n
次,每次使用所需的
值作为筛选参数
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="no" omit-xml-declaration="yes" />
<!-- sample value hardcoded here for demonstration -->
<xsl:param name="filterid" select="3" />
<!--
for implementation just declare param
<xsl:param name="filterid" />
-->
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="NewDataSet">
<xsl:for-each select="Table[CTD_CTD_PKG_ID = $filterid]">
<xsl:text/><xsl:value-of select="./CTD_REC_TYPE_ID"/>;<xsl:text/>
<xsl:text/><xsl:value-of select="./CTD_BEN_INS_ID"/>;<xsl:text/>
<xsl:text/><xsl:value-of select="./CTD_CURR_CODE"/>;<xsl:text/>
<xsl:text/><xsl:value-of select="./CTD_ORD_CUST_ACT"/>;<xsl:text/>
<xsl:text/><xsl:value-of select="./CTD_CTD_PKG_ID"/><xsl:text/>
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
作为你的结果
如果您设置
,您将收到
5;004820101;2;CACC;3
5;0048201515;2;CACC;6
5;004820101;2;CACC;6
有关如何使用.NET framework向Xslt提交参数的参考信息,请参阅。如果您可以将预期输出添加到问题中,这将有所帮助。您最近问了很多Xslt问题,但这些问题的表述仍然很糟糕。请投入一些努力。输出如:50048201515,2,cacc,6 5004820101,2,cacc,6这些记录应生成为一个csv文件,一个记录的其余部分5004820101,2,cacc,3在另一个csv文件中,对于多个输出,您需要XSLT 2.0或XSLT处理器的一些扩展。否则你可以像@Filburt answer那样多次运行转换。。。我的目标是向xsl样式表发送一个参数值,它只不过是包idthen@filburt…我没有得到这个xslt的输出,你能解释一下吗briefly@praveen如果您没有得到任何输出,那么您的Xml与您在文章中提供的示例不同。请参阅我关于如何向xslt样式表提交参数值的更新答案。@filburt thnx获得了很多精确的结果。。但我正在努力解决如何在vb.net窗口中将变量传递给xslt的问题form@praveen您在我链接的MSDN引用上试用过VB.Net代码示例吗?@filburt…我试过了,但在xslt中,它说不能使用儿童评估。。!!!这是我们动态地将参数传递到xsl中的一个例子,如果我们进行热编码,但输入一个值意味着ex:select='6'意味着输出ws