我正在使用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
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没有存储值,我怎么能隐藏Col1标签?
谢谢! 毫克
答案 0 :(得分:0)
这不是最优雅的,但这样的事情会起作用:
<Row>
<RowNumber><%= frm.RowNumber %></RowNumber>
<%= If(Not String.IsNullOrEmpty(frm.Col1), <Col1><%= frm.Col1 %></Col1>, Nothing) %>
<Col2><%= frm.Col2 %></Col2>
</Row>
这个想法是你可以随时放一个&lt;%= =&gt;表达式块返回XElement或Nothing,只有在返回节点时才会插入它。