YRKS
asked on
create a well formed xml in vb.net
I have two arrays the values of which need to be filled in the xml below
arrname whose length is 6
and arraddress whose legth is 15
An XML format like this is already defined
<name>
<first name><first name>
<LastName>LastName>
<middlename><middlename>
</name>
<Address>
<street1></<street1>
<street2></street2>
<city></city>
</Address>
I need to get a final xml like the following How would I do this
<name>
<first name>arrname(5) </first name>
<LastName>arrname(0) </LastName>
<middlename>arrname(2) </middlename>
</name>
<Address>
<street1>arraddress(7)</<s treet1>
<street2>arraddress (15)</street2>
<city>arraddress(10)</city >
</Address>
arrname whose length is 6
and arraddress whose legth is 15
An XML format like this is already defined
<name>
<first name><first name>
<LastName>LastName>
<middlename><middlename>
</name>
<Address>
<street1></<street1>
<street2></street2>
<city></city>
</Address>
I need to get a final xml like the following How would I do this
<name>
<first name>arrname(5) </first name>
<LastName>arrname(0) </LastName>
<middlename>arrname(2) </middlename>
</name>
<Address>
<street1>arraddress(7)</<s
<street2>arraddress (15)</street2>
<city>arraddress(10)</city
</Address>
ASKER
Yes I do have control over the XML.
YRKS
YRKS
Ok, that answers #2, how about #1?
Bob
Bob
ASKER
yes I am asking how to add elements to an xml document from an array
Here is an untested example:
Imports System.Xml
Public Class Person
Public Shared Sub SaveFromArray(ByVal fileName As String, ByVal arrName() As String, ByVal arrAddress() As String)
Dim document As New XmlDocument()
' <Person>
Dim elementPerson As XmlElement = document.CreateElement("Pe rson")
' <Name>
Dim elementName As XmlElement = document.CreateElement("Na me")
' Add <Name> as child element to <Person>
elementPerson.AppendChild( elementNam e)
' <FirstName>
Dim elementFirstName As XmlElement = document.CreateElement("Fi rstName")
Dim textFirstName As XmlText = document.CreateTextNode(ar rName(5))
elementFirstName.AppendChi ld(textFir stName)
elementName.AppendChild(el ementFirst Name)
' <LastName>
Dim elementLastName As XmlElement = document.CreateElement("La stName")
Dim textLastName As XmlText = document.CreateTextNode(ar rName(0))
elementLastName.AppendChil d(textLast Name)
elementName.AppendChild(el ementLastN ame)
' <MiddleName>
Dim elementMiddleName As XmlElement = document.CreateElement("Mi ddleName")
Dim textMiddleName As XmlText = document.CreateTextNode(ar rName(2))
elementMiddleName.AppendCh ild(textMi ddleName)
elementName.AppendChild(el ementMiddl eName)
' <Address>
Dim elementAddress As XmlElement = document.CreateElement("Ad dress")
' <Street1>
Dim elementStreet1 As XmlElement = document.CreateElement("St reet1")
Dim textStreet1 As XmlText = document.CreateTextNode(ar rAddress(7 ))
elementStreet1.AppendChild (textStree t1)
elementAddress.AppendChild (elementSt reet1)
' <Street2>
Dim elementStreet2 As XmlElement = document.CreateElement("St reet2")
Dim textStreet2 As XmlText = document.CreateTextNode(ar rAddress(1 5))
elementStreet2.AppendChild (textStree t2)
elementAddress.AppendChild (elementSt reet2)
' <City>
Dim elementCity As XmlElement = document.CreateElement("Ci ty")
Dim textCity As XmlText = document.CreateTextNode(ar rName(10))
elementCity.AppendChild(te xtCity)
elementAddress.AppendChild (elementCi ty)
' Add <Address> as child element to <Person>
elementPerson.AppendChild( elementAdd ress)
' Add root element <Person> to document
document.AppendChild(eleme ntPerson)
document.Save(fileName)
End Sub
End Class
Bob
Imports System.Xml
Public Class Person
Public Shared Sub SaveFromArray(ByVal fileName As String, ByVal arrName() As String, ByVal arrAddress() As String)
Dim document As New XmlDocument()
' <Person>
Dim elementPerson As XmlElement = document.CreateElement("Pe
' <Name>
Dim elementName As XmlElement = document.CreateElement("Na
' Add <Name> as child element to <Person>
elementPerson.AppendChild(
' <FirstName>
Dim elementFirstName As XmlElement = document.CreateElement("Fi
Dim textFirstName As XmlText = document.CreateTextNode(ar
elementFirstName.AppendChi
elementName.AppendChild(el
' <LastName>
Dim elementLastName As XmlElement = document.CreateElement("La
Dim textLastName As XmlText = document.CreateTextNode(ar
elementLastName.AppendChil
elementName.AppendChild(el
' <MiddleName>
Dim elementMiddleName As XmlElement = document.CreateElement("Mi
Dim textMiddleName As XmlText = document.CreateTextNode(ar
elementMiddleName.AppendCh
elementName.AppendChild(el
' <Address>
Dim elementAddress As XmlElement = document.CreateElement("Ad
' <Street1>
Dim elementStreet1 As XmlElement = document.CreateElement("St
Dim textStreet1 As XmlText = document.CreateTextNode(ar
elementStreet1.AppendChild
elementAddress.AppendChild
' <Street2>
Dim elementStreet2 As XmlElement = document.CreateElement("St
Dim textStreet2 As XmlText = document.CreateTextNode(ar
elementStreet2.AppendChild
elementAddress.AppendChild
' <City>
Dim elementCity As XmlElement = document.CreateElement("Ci
Dim textCity As XmlText = document.CreateTextNode(ar
elementCity.AppendChild(te
elementAddress.AppendChild
' Add <Address> as child element to <Person>
elementPerson.AppendChild(
' Add root element <Person> to document
document.AppendChild(eleme
document.Save(fileName)
End Sub
End Class
Bob
Another way that you can achieve this is to have a serializable class that holds the values.
Bob
Bob
ASKER
I have never used an serialzale object before doesn't it mean I have to create a property for each eleent ad store it in a serializable class ad the call it.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
2) Do you have control over the format of the XML?
3) I would use something like this:
<Name first="" last="" middle="" />
<Address street1="" street2="" city="" state="" />
Bob