Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用Linq编写XML时隐藏某些标记?_Xml_Vb.net_Linq - Fatal编程技术网

如何在使用Linq编写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

我使用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作为字符串
公共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的表达式块,并且只有在返回节点时才会插入它。

是的,这是正确的。我发现这个链接也很有用: