我试图序列化xml文件,我正面临一些问题。请查看我的xml示例文件:
<Information xmlns="dis">
<SOS.Alert>
<signal>4</signal>
<tresh>RTX</tresh>
<obb>GGHUI</obb>
</SOS.Alert>
<SOS.Alert>
<signal>3</signal>
<tresh>RTR</tresh>
<obb>GGH</obb>
</SOS.Alert>
<SOS.Alert>
<signal>20</signal>
<tresh>WWRTX</tresh>
<obb>BBHUI</obb>
</SOS.Alert>
<SOS.Alert>
<signal>13</signal>
<tresh>DRTR</tresh>
<obb>GFH</obb>
</SOS.Alert>
....
</Information>
问题是它正在跳过每一秒“秒”。因此,如果我们有4个输入,如上所述,只有两个将被序列化:
<SOS.Alert>
<signal>4</signal>
<tresh>RTX</tresh>
<obb>GGHUI</obb>
</SOS.Alert>
<SOS.Alert>
<signal>20</signal>
<tresh>WWRTX</tresh>
<obb>BBHUI</obb>
</SOS.Alert>
这是我正在使用的代码:
Me.xmlreader = New XmlTextReader(inputFileName)
Me.xmlreader.WhitespaceHandling = WhitespaceHandling.None
While (Me.xmlreader.Read())
If ((Me.xmlreader.Name = "SOS.Alert") And (Me.xmlreader.NodeType = XmlNodeType.Element) And (Me.xmlreader.IsStartElement())) Then
Me.data.MyList.Add(xmlreader.ReadOuterXml)
End If
End While
答案 0 :(得分:1)
((Me.xmlreader.Name =&#34; SOS.Alert&#34;)应为((Me.xmlreader.LocalName =&#34; SOS.Alert&# 34)强>
其他方法
Imports <xmlns:dis="dis"> ' required for example 2
。 。
Dim _xmlString As String = <Information xmlns="dis">
<SOS.Alert>
<signal>4</signal>
<tresh>RTX</tresh>
<obb>GGHUI</obb>
</SOS.Alert>
<SOS.Alert>
<signal>3</signal>
<tresh>RTR</tresh>
<obb>GGH</obb>
</SOS.Alert>
<SOS.Alert>
<signal>20</signal>
<tresh>WWRTX</tresh>
<obb>BBHUI</obb>
</SOS.Alert>
<SOS.Alert>
<signal>13</signal>
<tresh>DRTR</tresh>
<obb>GFH</obb>
</SOS.Alert>
</Information>.ToString
Dim _xdoc As XDocument = XDocument.Parse(_xmlString)
' Example 1
For Each _x As XElement In From _e In _xdoc.Root.Descendants Where _e.Name.LocalName = "SOS.Alert" Select _e
Debug.WriteLine(_x.ToString)
Next
' Example 2 - requires "Imports <xmlns:dis="dis">" the namespace of the xml
Dim _xdoc As XDocument = XDocument.Parse(_xmlString)
For Each _x As XElement In _xdoc.Root.<dis:SOS.Alert>
Debug.WriteLine(_x.ToString)
Next