如何把 字符串变成XML语句
怎么样把 字符串变成XML语句
大家帮帮呀!
最好能给点代码
没有代码给点参考资料也可以~~~~
[解决办法]
Imports System.Xml
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim mystring As String = "张三 男 "
Dim str() As String = mystring.Split( " ")
Dim x As New XmlTextWriter( "D:\d.xml ", System.Text.Encoding.Unicode)
x.WriteStartElement( "item ") ' <item>
x.WriteStartElement( "name ") ' <name>
x.WriteString(str(0)) ' 张三
x.WriteEndElement() ' </name>
x.WriteStartElement( "sex ") ' <sex>
x.WriteString(str(1)) ' 男
x.WriteEndElement() ' </sex>
x.WriteEndElement() ' </item>
x.Close()
MsgBox( "DONE ")
End Sub
End Class
[解决办法]
参考一下:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim line As String = "张三 男 通大街一路58号 "
Dim itemxml As String = "name sex address "
Dim items As String() = itemxml.Split( " "c)
Dim xml As String = " "
For i As Integer = 0 To items.Length - 1
xml &= String.Format( " <{0}> {{{1}}} </{0}> ", items(i), i)
Next
xml = String.Concat( " <item> ", xml, " </item> ")
Dim values As String() = line.Split( " "c)
xml = String.Format(xml, values)
Console.WriteLine(xml)
End Sub
结果:
<item> <name> 张三 </name> <sex> 男 </sex> <address> 通大街一路58号 </address> </item>
[解决办法]
Public Class XmlStringConvert
Private gQuote As Char = " "c
Private gXmlItemName As String = "item "
Private gXmlItemsLine As String = " "
Private gXmlFormat As String = " "
Public Property Quote() As Char
Get
Return gQuote
End Get
Set(ByVal value As Char)
gQuote = value
End Set
End Property
Public Property XmlItemName() As String
Get
Return gXmlItemName
End Get
Set(ByVal value As String)
gXmlItemName = value
End Set
End Property
Public WriteOnly Property XmlItemsLine() As String
Set(ByVal value As String)
gXmlItemsLine = value
End Set
End Property
Public Sub Reset()
gXmlFormat = " "
End Sub
Private Sub GetFormat()
Dim items As String() = gXmlItemsLine.Split(Me.Quote)
Dim xml As String = " "
For i As Integer = 0 To items.Length - 1
xml &= String.Format( " <{0}> {{{1}}} </{0}> ", items(i), i)
Next
xml = String.Concat( " < ", Me.XmlItemName, "> ", xml, " </ ", Me.XmlItemName, "> ")
gXmlFormat = xml
End Sub
Public Function GetItemXml(ByVal itemLine As String) As String
If gXmlFormat = " " Then GetFormat()
Return String.Format(gXmlFormat, itemLine.Split(Me.Quote))
End Function
End Class
使用:
Public Class Form1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim lines As String() = { "张三,男,通大街一路58号 ", "李四,女,北街两路85号 "}
Dim convert As New XmlStringConvert
With convert
.Quote = ", "c
.XmlItemsLine = "name,sex,address "
.XmlItemName = "person "
End With
For Each line As String In lines
Console.WriteLine(convert.GetItemXml(line))
Next
End Sub
End Class
结果:
<person> <name> 张三 </name> <sex> 男 </sex> <address> 通大街一路58号 </address> </person>
<person> <name> 李四 </name> <sex> 女 </sex> <address> 北街两路85号 </address> </person>