如何在使用Linq编写XML时隐藏某些标记?
我使用Linq将XML写入文件,我只希望写入包含值的XML部分(所以没有空标记)。以下是我目前掌握的情况:如何在使用Linq编写XML时隐藏某些标记?,xml,vb.net,linq,Xml,Vb.net,Linq,我使用Linq将XML写入文件,我只希望写入包含值的XML部分(所以没有空标记)。以下是我目前掌握的情况: Public Class frm Public Type As String Public RowNumber As Integer Public Col1 As String Public Col2 As String End Class Dim bVisCustom2x7 As Boolean Di
Public Class frm
Public Type As String
Public RowNumber As Integer
Public Col1 As String
Public Col2 As String
End Class
Dim bVisCustom2x7 As Boolean
Dim visform = <VisitorForm>
<Tabs>
<Tab>
<Type>Custom2x7</Type>
<Order></Order>
<Visibility><%= bVisCustom2x7.ToString %></Visibility>
<%= From frm In frm_list Where frm.Type = "Custom2x7" _
Select _
<Row>
<RowNumber><%= frm.RowNumber %></RowNumber>
<Col1><%= frm.Col1 %></Col1>
<Col2><%= frm.Col2 %></Col2>
</Row>
%>
</Tab>
<Tabs>
<VisitorForm>
公共类frm
作为字符串的公共类型
作为整数的公共行数
公共Col1作为字符串
公共Col2作为字符串
末级
尺寸bVisCustom2x7为布尔值
Dim visform=
定制2x7
例如,如果frm.Col1没有存储任何值,我如何隐藏Col1标记以避免写入
谢谢!
mg它不是最优雅的,但类似这样的东西可以:
<Row>
<RowNumber><%= frm.RowNumber %></RowNumber>
<%= If(Not String.IsNullOrEmpty(frm.Col1), <Col1><%= frm.Col1 %></Col1>, Nothing) %>
<Col2><%= frm.Col2 %></Col2>
</Row>
其思想是,您可以始终放置一个返回XElement或Nothing的表达式块,并且只有在返回节点时才会插入它。是的,这是正确的。我发现这个链接也很有用: