2013-10-16 36 views
1

我有提交數據時必須匹配的XML文件。不管我做什麼,我最終都會爲主陣列添加一個額外的包裝器。 XML必須是這樣的:XML數組中的額外包裝

<?xml version="1.0" encoding="utf-8"?> 
<contracts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <contract> 
     <productType>VSC</productType> 
     <contractNumber>ABS1869169</contractNumber> 
     <vehicle> 
      <vin>JTKDE177160100198</vin> 
      <odometer>128135</odometer> 
      <purchasePrice>5574</purchasePrice> 
     </vehicle> 
    </contract> 
    <contract> 
     <productType>VSC</productType> 
     <contractNumber>ABS1865421</contractNumber> 
     <vehicle> 
      <vin>LTGSE177160154878</vin> 
      <odometer>119154</odometer> 
      <purchasePrice>6509</purchasePrice> 
     </vehicle> 
    </contract> 
</contracts> 

我結束了一個額外的合同是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<contracts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <contracts> 
    <contract> 
     <productType>VSC</productType> 
     <contractNumber>ABS1869169</contractNumber> 
     <vehicle> 
     <vin>JTKDE177160100198</vin> 
     <odometer>128135</odometer> 
     <purchasePrice>5574</purchasePrice> 
     </vehicle> 
    </contract> 
    <contract> 
     <productType>VSC</productType> 
     <contractNumber>ABS1865421</contractNumber> 
     <vehicle> 
     <vin>LTGSE177160154878</vin> 
     <odometer>119154</odometer> 
     <purchasePrice>6509</purchasePrice> 
     </vehicle> 
    </contract> 
    </contracts> 
</contracts> 

這裏是我的代碼。

Public Class contracts 

    Public contracts() As contract 

End Class 


Public Class contract 
    Public productType As String = "VSC" 
    Public contractNumber As String 
    Public vehicle As New contractVehicle 
End Class 

Public Class contractVehicle 
    Public vin As String 
    Public odometer As String 
    Public purchasePrice As String 
End Class 


    Dim serializer As New XmlSerializer(GetType(contracts)) 
    Using stream As Stream = New FileStream("C:\Code\TestXML2.xml", FileMode.Create) 
     Dim s As New XmlWriterSettings() 
     s.Indent = True 
     s.Encoding = Encoding.UTF8 
     Dim writer As XmlWriter = XmlTextWriter.Create(stream, s) 
     serializer.Serialize(writer, vx) 
     writer.Close() 
    End Using 

回答

2

我終於想出了自己的問題的答案。我只需要設置屬性。

Public Class contracts 

    <XmlElementAttribute("contract", Form:=Xml.Schema.XmlSchemaForm.Unqualified)> _ 
    Public contracts() As contract 

    End Sub 

End Class 
+0

+1找出你自己*和*發佈解決方案。不是每個人都這樣做。 – Tomalak