vb.net 如何生成XML过程中如果生成类似这样的节点?

GUOCHENGJUN 2013-07-15 06:13:00
<tcs:TcsLinkMan>
<tcs:Name>aaaaaaaaaaaa</tcs:Name>
<tcs:Department>text</tcs:Department>
<tcs:Duty>text</tcs:Duty>
<tcs:Telephone>text</tcs:Telephone>
<tcs:Mobile>text</tcs:Mobile>
<tcs:Fax>text</tcs:Fax>
<tcs:Address>text</tcs:Address>
<tcs:ZipCode>text</tcs:ZipCode>
<tcs:Email>text</tcs:Email>
<tcs:ImCode>text</tcs:ImCode>
<tcs:ImType>text</tcs:ImType>
</tcs:TcsLinkMan>
...全文
263 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
东海凌波 2013-08-02
  • 打赏
  • 举报
回复
以下代码可以实现你要的格式,但是“:”这个特殊符号创建XML时会报错,还不知道用什么替换: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = CreateXml(CreateDataTable()) End Sub Private Function CreateDataTable() As DataTable Dim dttemp As New DataTable Try dttemp.Columns.Add("Name", GetType(String)) dttemp.Columns.Add("Department", GetType(String)) dttemp.Columns.Add("Duty", GetType(String)) dttemp.Columns.Add("Telephone", GetType(String)) dttemp.Columns.Add("Mobile", GetType(String)) dttemp.Columns.Add("Fax", GetType(String)) dttemp.Columns.Add("Address", GetType(String)) dttemp.Columns.Add("ZipCode", GetType(String)) dttemp.Columns.Add("Email", GetType(String)) dttemp.Columns.Add("ImCode", GetType(String)) dttemp.Columns.Add("ImType", GetType(String)) Dim drow As DataRow = dttemp.NewRow drow("Name") = "aaaaaaaaaaaa" drow("Department") = "text" drow("Duty") = "text" drow("Telephone") = "text" drow("Mobile") = "text" drow("Fax") = "text" drow("Address") = "text" drow("ZipCode") = "text" drow("Email") = "text" drow("ImCode") = "text" drow("ImType") = "text" dttemp.Rows.Add(drow) Catch ex As Exception Throw ex End Try Return dttemp End Function Private Function CreateXml(ByVal dt As DataTable) As String Dim settings As New XmlWriterSettings settings.Indent = True settings.NewLineOnAttributes = True Dim strxml As New StringBuilder() Dim writer As XmlWriter = XmlWriter.Create(strxml, settings) writer.WriteCharEntity(":") Try If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then writer.WriteStartDocument() writer.WriteStartElement("TcsLinkMan") For i As Integer = 0 To dt.Rows.Count - 1 writer.WriteStartElement("Name") writer.WriteString(dt.Rows(i).Item("Name").ToString.Trim) writer.WriteEndElement() writer.WriteStartElement("Department") writer.WriteString(dt.Rows(i).Item("Department").ToString.Trim) writer.WriteEndElement() writer.WriteStartElement("Duty") writer.WriteString(dt.Rows(i).Item("Duty").ToString.Trim) writer.WriteEndElement() writer.WriteStartElement("Telephone") writer.WriteString(dt.Rows(i).Item("Telephone").ToString.Trim) writer.WriteEndElement() writer.WriteStartElement("Mobile") writer.WriteString(dt.Rows(i).Item("Mobile").ToString.Trim) writer.WriteEndElement() writer.WriteStartElement("Address") writer.WriteString(dt.Rows(i).Item("Address").ToString.Trim) writer.WriteEndElement() writer.WriteStartElement("ZipCode") writer.WriteString(dt.Rows(i).Item("ZipCode").ToString.Trim) writer.WriteEndElement() writer.WriteStartElement("Email") writer.WriteString(dt.Rows(i).Item("Email").ToString.Trim) writer.WriteEndElement() writer.WriteStartElement("ImCode") writer.WriteString(dt.Rows(i).Item("ImCode").ToString.Trim) writer.WriteEndElement() writer.WriteStartElement("ImType") writer.WriteString(dt.Rows(i).Item("ImType").ToString.Trim) writer.WriteEndElement() Next writer.WriteEndElement() writer.WriteEndDocument() writer.Flush() writer.Close() End If Catch ex As Exception Throw ex End Try Return strxml.ToString() End Function
GUOCHENGJUN 2013-07-16
  • 打赏
  • 举报
回复
自己再顶一下吧
GUOCHENGJUN 2013-07-16
  • 打赏
  • 举报
回复
刚测试过了,生成的XML文件中节点上还是没有类似如下的格式啊 - <tcs:TcsUser> <tcs:UserId>T75991882900</tcs:UserId> <tcs:UserPrivateKey>password</tcs:UserPrivateKey> </tcs:TcsUser>
BreatheLai 2013-07-15
  • 打赏
  • 举报
回复
引用 3 楼 GUOCHENGJUN 的回复:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim conn As New SqlConnection() Dim cmd As New SqlCommand Dim rs As SqlDataReader conn.ConnectionString = "server=192.168.1.229;database ='test' ;user id =sa;password='sa'" conn.Open() cmd.CommandText = "select * from MessageHead " cmd.Connection = conn cmd.CommandType = CommandType.Text rs = cmd.ExecuteReader While rs.Read 'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myTW As New XmlTextWriter(Application.ExecutablePath & "\..\dlsave.XML", System.Text.Encoding.UTF8) myTW.WriteStartDocument() myTW.Formatting = Formatting.Indented myTW.WriteStartElement("TCS101Message") myTW.WriteStartElement("MessageHead") myTW.WriteElementString("MessageType", Trim(rs("MessageType"))) myTW.WriteElementString("MessageId", Trim(rs("MessageId"))) myTW.WriteElementString("MessageTime", Trim(rs("MessageTime"))) myTW.WriteElementString("SenderId", Trim(rs("SenderId"))) myTW.WriteElementString("SenderAddress", Trim(rs("SenderAddress"))) myTW.WriteElementString("ReceiverId", Trim(rs("ReceiverId"))) myTW.WriteElementString("ReceiverAddress", Trim(rs("ReceiverAddress"))) myTW.WriteStartElement("MessageBody") myTW.WriteElementString("ReceiverAddress", Trim(rs("ReceiverAddress"))) myTW.WriteStartElement("TcsFlow201") myTW.WriteElementString("ReceiverAddress", Trim(rs("ReceiverAddress"))) myTW.WriteEndElement() myTW.WriteEndElement() myTW.WriteEndElement() myTW.WriteEndElement() myTW.WriteEndDocument() myTW.Close() End While rs.Close() 这是代码,能帮忙修改一下吗,NET不熟,第一次用XML,所以听不明白!
Dim doc As XmlDocument = New XmlDocument
        Call doc.AppendChild(doc.CreateProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8"""))
        Dim root As XmlElement = doc.CreateElement("tcs:TcsLinkMan")

        Dim node1 As XmlElement = doc.CreateElement("tcs:Name")
        node1.InnerText = "aaaaaaaaaaaa"
        root.AppendChild(node1)

        Dim node2 As XmlElement = doc.CreateElement("tcs:Department")
        node2.InnerText = "text"
        root.AppendChild(node2)

        Dim node3 As XmlElement = doc.CreateElement("tcs:Duty")
        node3.InnerText = "text"
        root.AppendChild(node3)

        Dim node4 As XmlElement = doc.CreateElement("tcs:Telephone")
        node4.InnerText = "text"
        root.AppendChild(node4)

        Dim node5 As XmlElement = doc.CreateElement("tcs:Mobile")
        node5.InnerText = "text"
        root.AppendChild(node5)

        Dim node6 As XmlElement = doc.CreateElement("tcs:Fax")
        node6.InnerText = "text"
        root.AppendChild(node6)

        Dim node7 As XmlElement = doc.CreateElement("tcs:Address")
        node7.InnerText = "text"
        root.AppendChild(node7)

        Dim node8 As XmlElement = doc.CreateElement("tcs:ZipCode")
        node8.InnerText = "text"
        root.AppendChild(node8)

        Dim node9 As XmlElement = doc.CreateElement("tcs:Email")
        node9.InnerText = "text"
        root.AppendChild(node9)

        Dim node10 As XmlElement = doc.CreateElement("tcs:ImCode")
        node10.InnerText = "text"
        root.AppendChild(node10)

        Dim node11 As XmlElement = doc.CreateElement("tcs:ImType")
        node11.InnerText = "text"
        root.AppendChild(node11)



        doc.AppendChild(root)
        doc.Save("linkMan.xml")
GUOCHENGJUN 2013-07-15
  • 打赏
  • 举报
回复
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim conn As New SqlConnection() Dim cmd As New SqlCommand Dim rs As SqlDataReader conn.ConnectionString = "server=192.168.1.229;database ='test' ;user id =sa;password='sa'" conn.Open() cmd.CommandText = "select * from MessageHead " cmd.Connection = conn cmd.CommandType = CommandType.Text rs = cmd.ExecuteReader While rs.Read 'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim myTW As New XmlTextWriter(Application.ExecutablePath & "\..\dlsave.XML", System.Text.Encoding.UTF8) myTW.WriteStartDocument() myTW.Formatting = Formatting.Indented myTW.WriteStartElement("TCS101Message") myTW.WriteStartElement("MessageHead") myTW.WriteElementString("MessageType", Trim(rs("MessageType"))) myTW.WriteElementString("MessageId", Trim(rs("MessageId"))) myTW.WriteElementString("MessageTime", Trim(rs("MessageTime"))) myTW.WriteElementString("SenderId", Trim(rs("SenderId"))) myTW.WriteElementString("SenderAddress", Trim(rs("SenderAddress"))) myTW.WriteElementString("ReceiverId", Trim(rs("ReceiverId"))) myTW.WriteElementString("ReceiverAddress", Trim(rs("ReceiverAddress"))) myTW.WriteStartElement("MessageBody") myTW.WriteElementString("ReceiverAddress", Trim(rs("ReceiverAddress"))) myTW.WriteStartElement("TcsFlow201") myTW.WriteElementString("ReceiverAddress", Trim(rs("ReceiverAddress"))) myTW.WriteEndElement() myTW.WriteEndElement() myTW.WriteEndElement() myTW.WriteEndElement() myTW.WriteEndDocument() myTW.Close() End While rs.Close() 这是代码,能帮忙修改一下吗,NET不熟,第一次用XML,所以听不明白!
threenewbee 2013-07-15
  • 打赏
  • 举报
回复
指定namespace
GUOCHENGJUN 2013-07-15
  • 打赏
  • 举报
回复
只有35分了,所以分有点少,还清各位大牛帮忙,只能说声谢谢了

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧