PDA

View Full Version : اگر منابع یا مقالات یا تاپیک های رو در مورد استفاده XML در vb دارید اینجا لینک بدید



barbodsoft.com
سه شنبه 16 شهریور 1389, 16:51 عصر
سلام دوستان
من جستجو زیاد کردم ولی نتونستم آموزش مناسبی برای استفاده از XML در vb.net پیدا کنم. اگر دوستان سراغ دارند راهنمایی کنند.

salehbagheri
سه شنبه 16 شهریور 1389, 17:39 عصر
من واقعاً نمیدونم یعنی کار با XML اینقدر سخته؟ کار با فایلهای XML که یکی از راحت ترین مقوله های برنامه نویسی هست.

شما فایل زیر رو تصور کنید:

<?xml version="1.0" encoding="utf-8" ?>
<car name="EvjenCar">
<color>Blue</color>
<door>4</door>
<speed>150</speed>
</car>


حالا کافیه یک متغیر از نوع XMLDocument ایجاد کنید و به روش زیر به محتویات فایل دسرسی پیدا کنید.

Dim carXmlDoc As XmlDocument = New XmlDocument()
carXmlDoc.Load(YourXMLFileName)
Dim mainNode As XmlNode = carXmlDoc.SelectSingleNode("/car")
Dim selectionMainNode As String = mainNode.Attributes("name").Value
Dim colorNode As XmlNode = carXmlDoc.SelectSingleNode("/car/color")
Dim selectionColorNode As String = colorNode.InnerText
Dim doorNode As XmlNode = carXmlDoc.SelectSingleNode("/car/door")
Dim selectionDoorNode As String = doorNode.InnerText
Dim speedNode As XmlNode = carXmlDoc.SelectSingleNode("/car/speed")
Dim selectionSpeedNode As String = speedNode.InnerText

barbodsoft.com
سه شنبه 16 شهریور 1389, 19:26 عصر
سلام
ممنون که جواب می دین
من منظورم فقط یک خواندن معمولی از XML نیست. البته می دونم XML خیلی ساده هست. ولی کار با اون یک مقداری نیاز به کار دارد.
من این کد رو برای خوندن از Xml از اینترنت گرفتم


Imports System.IO
Imports System.Xml
Module ParsingUsingXmlTextReader
Sub Main()
Dim m_xmlr As XmlTextReader
'Create the XML Reader
m_xmlr = New XmlTextReader("G:\family.xml")
'Disable whitespace so that you don't have to read over whitespaces
m_xmlr.WhiteSpaceHandling = WhiteSpaceHandling.NONE
'read the xml declaration and advance to family tag
m_xmlr.Read()
'read the family tag
m_xmlr.Read()
'Load the Loop
WhileNot m_xmlr.EOF
'Go to the name tag
m_xmlr.Read()
'if not start element exit while loop
IfNot m_xmlr.IsStartElement() Then
ExitWhile
EndIf
'Get the Gender Attribute Value
Dim genderAttribute = m_xmlr.GetAttribute("gender")
'Read elements firstname and lastname
m_xmlr.Read()
'Get the firstName Element Value
Dim firstNameValue = m_xmlr.ReadElementString("firstname")
'Get the lastName Element Value
Dim lastNameValue = m_xmlr.ReadElementString("lastname")
'Write Result to the Console
MessageBox.Show("Gender: " & genderAttribute _
& " FirstName: " & firstNameValue & " LastName: " _
& lastNameValue)
Console.Write(vbCrLf)
EndWhile
'close the reader
m_xmlr.Close()
EndSub
EndModule


و الان برای نوشتن تو Xml مشکل دارم. البته یک چیزای دانلود کردم ولی همش اشکال داره. اگه می شه در مورد نوشتن در فایل XMl و ویرایش اون توضیح بدید. من کد زیر رو از کدپروجگت گرفتم ولی این برای فقط یک گروه داده به کار می رود و اگر خواستیم مقادیر جدید دیگری وارد کنیم نمی شه.



Dim Capital AsString = "mazandaran"
Dim Cities AsString = "amoll"
Dim rank AsInteger = 2
Dim settings AsNew XmlWriterSettings()
settings.Indent = True
settings.NewLineOnAttributes = True
Using writer As XmlWriter = XmlWriter.Create("C:\xmlfile.xml", settings)
writer.WriteStartDocument()
writer.WriteStartElement("countries")
writer.WriteStartElement("iran")
writer.WriteStartAttribute("capital")
writer.WriteValue(Capital)
writer.WriteEndAttribute()
writer.WriteStartAttribute("Cities")
writer.WriteValue(Cities)
writer.WriteEndAttribute()
writer.WriteStartAttribute("rank")
writer.WriteValue(rank)
writer.WriteEndAttribute()
writer.WriteEndElement()
writer.WriteEndDocument()
writer.Flush()

EndUsing

barbodsoft.com
سه شنبه 16 شهریور 1389, 20:26 عصر
این کد رو هم نوشتم که می تونه مفید باشه



Dim doc As New Xml.XmlDocument
'create nodes
Dim root As Xml.XmlElement = doc.CreateElement("CLIENT")
Dim child As Xml.XmlElement = doc.CreateElement("NAME")
Dim element As Xml.XmlElement = doc.CreateElement("LAST")
For i As Integer = 1 To 10
child = doc.CreateElement("NAME" & i)
element = doc.CreateElement("LAST" & i)
'create attribute
element.SetAttribute("value", "Smith" & i)
'put them all together
child.AppendChild(element)
root.AppendChild(child)
doc.AppendChild(root)
Next
'save it
doc.Save("G:\family.xml")


ولی هنوز نمی دونم چطور باید ویرایش کرد و یا چطور مقادیر دیتاست رو به صورت XML خروجی گرفت. لطفا کمک کنید.

ظاهرا خودم می پرسم و خودم جواب هم می دم . منتظر کمک شما هستم.

saraebrahimi
دوشنبه 26 مهر 1389, 18:32 عصر
جنابbabodsoft.com
ایامیشه در مورد xml بیشترتوضیح بدهید