vb.net – 条件XML文字
发布时间:2020-12-17 00:06:11 所属栏目:大数据 来源:网络整理
导读:我试过这个搜索但似乎无法在任何地方找到答案,所以希望有人在这里可以提供帮助.我想根据计数是否高于1来插入条件 XML标记,但我不知道该怎么做. 例如,我有两个像这样的XElements: BlobGroupStuff 1/Group/Blob 和 BlobGroupStuff 1/GroupGroupStuff 2/Group/
我试过这个搜索但似乎无法在任何地方找到答案,所以希望有人在这里可以提供帮助.我想根据计数是否高于1来插入条件
XML标记,但我不知道该怎么做.
例如,我有两个像这样的XElements: <Blob> <Group> Stuff 1 </Group> </Blob> 和 <Blob> <Group> Stuff 1 </Group> <Group> Stuff 2 </Group> </Blob> 我希望这最终成为第一个: <BigGroup> <Group/> </BigGroup> 而对于第二个: <BigGroup> <Groups> <Group/> <Group/> </Groups> </BigGroup> 请注意,在第二个中,它们是围绕两个组的标记. 所以,我想在XML Literal中使用这个条件.我试过的是: Dim groups = If(<Blob>.<Group>.Count > 1,<Groups/>,Nothing) Dim bigGroup = <BigGroup><%= groups %><%= from e in <Blob>.<Group> select e %><%= groups%></BigGroup> 但这不起作用.有没有人有办法在XML Literal中按上述方法执行此操作?
您可以将If语句放在XML Literal中.此外,通过简单地引用<%=%>内的变量,输出IEnumerable(Of XElement)足够聪明.
这是代码. Sub Main() Dim SingleGroup = <Blob> <Group>Stuff 1</Group> </Blob> Dim TwoGroups = <Blob> <Group>Stuff 1</Group> <Group>Stuff 2</Group> </Blob> Dim BigGroup1 = BigGroup(SingleGroup.<Group>) Dim BigGroup2 = BigGroup(TwoGroups.<Group>) Console.WriteLine(BigGroup1) Console.WriteLine() Console.WriteLine(BigGroup2) Console.ReadLine() End Sub Function BigGroup(ByVal groups As IEnumerable(Of XElement)) As XElement Dim result = <BigGroup> <%= If(groups.Count > 1,_ <Groups><%= groups %></Groups>,_ groups.SingleOrDefault) %> </BigGroup> Return result End Function 输出是: <BigGroup> <Group>Stuff 1</Group> <BigGroup> <BigGroup> <Groups> <Group>Stuff 1</Group> <Group>Stuff 2</Group> </Groups> </BigGroup> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |