我有一個要求,一個字符串是這樣的:轉換分組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個以上的級別。