寻求专家建议如何攻击XSLT问题 [英] Seeking advice from the experts on how to attack an XSLT problem

查看:69
本文介绍了寻求专家建议如何攻击XSLT问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要使用以下格式处理文档,例如:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆