我有一个要求,一个字符串是这样的:转换分组SQL语句XML
[页] < '10',[页]> '30' 号和([Client.ShortName] =“测试'或者[Review_Stage.Name] = '完成' 或([ReviewCoreExt.ActiveReviewer] = 'ABC' 而[Client.IsDemo] = '真'))
并将其转换为XML这样的:
<Filter>
<FilterGroup ID="91140d9e-e805-4fa1-b86b-cdea197a279d" GroupType="And">
<FilterCriteria ID="4950b1c8-cf04-48cb-be1a-247bbec5d2f7" MatchField="Pages" MatchType="Is Less Than" MatchValue="10" />
<FilterCriteria ID="351f180d-0c65-430a-a64c-840c93d22a6e" MatchField="Pages" MatchType="Is Greater Than" MatchValue="30" />
<FilterGroup ID="85662ed6-4377-434d-8185-cb52ec908a90" GroupType="Or">
<FilterCriteria ID="c5698b82-678f-42a7-a917-c1388edf3274" MatchField="Client.ShortName" MatchType="Equals" MatchValue="Test" />
<FilterCriteria ID="242746c6-013a-4f1c-9ace-efadeb5fdd9d" MatchField="Review_Stage.Name" MatchType="Equals" MatchValue="Complete" />
<FilterGroup ID="cf8fcd62-b752-4b12-ae65-3f39fe9022f4" GroupType="And">
<FilterCriteria ID="737cf486-e40b-47e4-8473-886e126d84a9" MatchField="ReviewCoreExt.ActiveReviewer" MatchType="Equals" MatchValue="ABC" />
<FilterCriteria ID="abbfae00-2582-47b4-833a-bfaa0190fb9a" MatchField="Client.IsDemo" MatchType="Equals" MatchValue="True" />
</FilterGroup>
</FilterGroup>
</FilterGroup>
</Filter>
Guid只是一个新的Guid()。有没有人有一个相对简单的方法来做这样的事情?理论上这些小组可以嵌套无数次,但实际上很少有2-3个以上的级别。