寻求专家建议如何攻击XSLT问题 [英] Seeking advice from the experts on how to attack an XSLT problem
问题描述
我需要使用以下格式处理文档,例如:
I need to process a document with the following format, example:
<?xml version =" 1.0" encoding =" UTF-8">
< rows>
< SalesTerrChk />
< row>
< SiteType> M< / SiteType>
<类型> P< /类型>
< DWHSalesTerritoryID> 4< / DWHSalesTerritoryID>
< SalesTerrRowID> ADOA-4VHJYJ< / SalesTerrRowID>
< SiteID> ADOA-3ZVNEI< / SiteID>
<频道> VS< /频道>
< StartDate> 2008-01-01T00:00:00.000< / StartDate>
< Brand> - < / Brand>
< Rank> 1< / Rank>
<删除/>
<更新/>
< /排> - < row>
< SiteType> D< / SiteType>
<类型> P< /类型>
< DWHSalesTerritoryID> 10< / DWHSalesTerritoryID>
< SalesTerrRowID> ADOA-4VHJYG< / SalesTerrRowID>
< SiteID> ADOA-3ZVNEO< / SiteID>
<频道/>
< StartDate> 2009-01-01T00:00:00.000< / StartDate>
< Brand> - < / Brand>
< Rank> 2< / Rank>
<删除/>
<更新/>
< /排> - < row>
< SiteType> M< / SiteType>
<类型> C< /类型>
< DWHSalesTerritoryID> 3< / DWHSalesTerritoryID>
< SalesTerrRowID> ADOA-4VHJYF< / SalesTerrRowID>
< SiteID> ADOA-3ZVNEI< / SiteID>
<频道> BT< /频道>
< StartDate> 2010-01-01T00:00:00.000< / StartDate>
< Brand> - < / Brand>
< Rank> 3< / Rank>
<删除/>
<更新/>
< /排> - < row>
< SiteType> D< / SiteType>
<类型> P< /类型>
< DWHSalesTerritoryID> 13< / DWHSalesTerritoryID>
< SalesTerrRowID> ADOA-4VHJYO< / SalesTerrRowID>
< SiteID> ADOA-3ZVNEO< / SiteID>
<频道> BT< /频道>
< StartDate> 2010-01-01T00:00:00.000< / StartDate>
< Brand> - < / Brand>
< Rank> 3< / Rank>
<删除/>
<更新/>
< /排> - < row>
< SiteType> D< / SiteType>
<类型> C< /类型>
< DWHSalesTerritoryID> 16< / DWHSalesTerritoryID>
< SalesTerrRowID> ADOA-4VHJYL< / SalesTerrRowID>
< SiteID> ADOA-3ZVNEO< / SiteID>
<频道/>
< StartDate> 2011-01-01T00:00:00.000< / StartDate>
< Brand> - < / Brand>
< Rank> 5< / Rank>
<删除/>
<更新/>
< /排> - < row>
< SiteType> M< / SiteType>
<类型> F< /类型>
< DWHSalesTerritoryID> 5< / DWHSalesTerritoryID>
< SalesTerrRowID> ADOA-4VHJYK< / SalesTerrRowID>
< SiteID> ADOA-3ZVNEI< / SiteID>
<频道> VS< /频道>
< StartDate> 2012-01-01T00:00:00.000< / StartDate>
< Brand> - < / Brand>
< Rank> 6< / Rank>
<删除/>
<更新/>
< / row>
< / rows>
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<SalesTerrChk/>
<row>
<SiteType>M</SiteType>
<Type>P</Type>
<DWHSalesTerritoryID>4</DWHSalesTerritoryID>
<SalesTerrRowID>ADOA-4VHJYJ</SalesTerrRowID>
<SiteID>ADOA-3ZVNEI</SiteID>
<Channel>VS</Channel>
<StartDate>2008-01-01T00:00:00.000</StartDate>
<Brand>-</Brand>
<Rank>1</Rank>
<Delete/>
<Update/>
</row> - <row>
<SiteType>D</SiteType>
<Type>P</Type>
<DWHSalesTerritoryID>10</DWHSalesTerritoryID>
<SalesTerrRowID>ADOA-4VHJYG</SalesTerrRowID>
<SiteID>ADOA-3ZVNEO</SiteID>
<Channel/>
<StartDate>2009-01-01T00:00:00.000</StartDate>
<Brand>-</Brand>
<Rank>2</Rank>
<Delete/>
<Update/>
</row> - <row>
<SiteType>M</SiteType>
<Type>C</Type>
<DWHSalesTerritoryID>3</DWHSalesTerritoryID>
<SalesTerrRowID>ADOA-4VHJYF</SalesTerrRowID>
<SiteID>ADOA-3ZVNEI</SiteID>
<Channel>BT</Channel>
<StartDate>2010-01-01T00:00:00.000</StartDate>
<Brand>-</Brand>
<Rank>3</Rank>
<Delete/>
<Update/>
</row> - <row>
<SiteType>D</SiteType>
<Type>P</Type>
<DWHSalesTerritoryID>13</DWHSalesTerritoryID>
<SalesTerrRowID>ADOA-4VHJYO</SalesTerrRowID>
<SiteID>ADOA-3ZVNEO</SiteID>
<Channel>BT</Channel>
<StartDate>2010-01-01T00:00:00.000</StartDate>
<Brand>-</Brand>
<Rank>3</Rank>
<Delete/>
<Update/>
</row> - <row>
<SiteType>D</SiteType>
<Type>C</Type>
<DWHSalesTerritoryID>16</DWHSalesTerritoryID>
<SalesTerrRowID>ADOA-4VHJYL</SalesTerrRowID>
<SiteID>ADOA-3ZVNEO</SiteID>
<Channel/>
<StartDate>2011-01-01T00:00:00.000</StartDate>
<Brand>-</Brand>
<Rank>5</Rank>
<Delete/>
<Update/>
</row> - <row>
<SiteType>M</SiteType>
<Type>F</Type>
<DWHSalesTerritoryID>5</DWHSalesTerritoryID>
<SalesTerrRowID>ADOA-4VHJYK</SalesTerrRowID>
<SiteID>ADOA-3ZVNEI</SiteID>
<Channel>VS</Channel>
<StartDate>2012-01-01T00:00:00.000</StartDate>
<Brand>-</Brand>
<Rank>6</Rank>
<Delete/>
<Update/>
</row>
</rows>
棘手的部分(至少对我而言) )我需要根据业务规则对输入进行预检查,我还需要根据这组规则在运行中创建输出,其中某些值可能会更改(格式将是相同的) 。)&NBSP;我不想b $ b想要讨论业务规则,因为这只会影响我所寻找的东西。 我需要能够将当前节点与先前"输出"的值进行比较。节点(具有更新的值)以及下一个输入节点。 我可以使用轴路径获得
到下一个输入节点但是我能想到获得前一个"输出"的唯一方法。节点值将使用调用模板和参数传递循环(我认为)。 对不起,但我是XSLT的新手,想看看
是否有更干净/更好的方式。
The tricky part (at least for me) is that I need to do pre-checking on the input based on business rules and I also need to create, on-the-fly, the output based on this set of rules where some values may be changed (format will be the same). I don't want to talk about the business rules as this will only cloud what I am looking for. I need to be able to compare the current node with the values from the previous "output" node (with the updated values) and also with the next input node. I can get at the next input node using an axis path but the only way I can think of getting the previous "output" node values would be with a call-template and parameter passing in a loop (I think). Sorry, but I'm rather new to XSLT and would like to see if there is a cleaner/better way.
提前致谢...
推荐答案
您好,
以前的输出节点在哪里?
Where are the previous output nodes ?
亲切的问候,
这篇关于寻求专家建议如何攻击XSLT问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!