gpt4 book ai didi

vb.net - 条件 XML 文字

转载 作者:行者123 更新时间:2023-12-04 16:56:57 30 4
gpt4 key购买 nike

我试过搜索这个,但似乎无法在任何地方找到答案,所以希望这里有人可以提供帮助。我想根据计数是否大于 1 插入一个条件 XML 标记,但我不知道该怎么做。

例如,我有两个这样的 XElement:

<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 文字中使用该条件。我试过的是:
Dim groups = If(<Blob>.<Group>.Count > 1, <Groups/>, Nothing)

Dim bigGroup = <BigGroup><%= groups %><%= from e in <Blob>.<Group> select e %><%= groups%></BigGroup>

但这行不通。有没有人有办法从上面需要的 XML 文字中做到这一点?

最佳答案

您可以将 If 语句放在 XML 文字中。此外,它足够聪明,可以输出 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>

关于vb.net - 条件 XML 文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1727784/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com