VBNet.Su - Visual Basic .NET. ASP .NET. Framework .NET.
Новости
26.12.2008 Лимитный инвайт для тех, кто хочет присоединиться к VBNet.Su, но не может :)
vbnet-super
С наступающим!
join

18.12.2008 Увеличен размер поля для подписи. Разрешено использовать некоторые теги HTML.
Изменены правила форума, в подписи разрешено использовать партнерские ссылки. Ссылки в подписи могут использовать только те пользователи, которые разместили обратную ссылку на VBNet.Su на одном из сайтов, указанных в профиле. Проверка обратных ссылок производится в автоматическом режиме. Если у Вас возникнут какие-либо вопросы, обращайтесь к администратору.

15.12.2008 Открылась рассылка VBNet.Su!
Рассылка будет выходить автоматически, несколько раз в неделю. В рассылке будут содержаться последние обновления сайта (аналог RSS). Чтобы подписаться на рассылку VBNet.Su, перейдите по этой ссылке.
Архив новостей
Будь в теме
КПК и коммуникаторы
VBNet.Su рекомендуетNokia N95 8Gb
Ростест

Nokia N95 8Gb

Еще недавно мечты о приборе, который совмещает в себе функции универсального средства связи и полноценного компьютера и при этом легко помещается в кармане, были уделом писателей-фантастов. Но ... подробнее..
Цена: 19900 руб. КУПИТЬ
Партнеры
Kbyte.Ru OZON.ru
Счетчики
Рассылка 'Visual Basic .NET - новости, коды, статьи, форум'
Статьи / XML /

Работа с XML средствами Visual Basic .NET

Автор: Алексей Немиро | добавлено: 07 декабря 2008 / 19:28 | просмотров: 9921 (+9342)
В последнее время мне много приходит вопросов на тему работы с XML и писать каждому отдельно ответы на этот вопрос мне надоело, посему пишу сразу для всех.
И так, в данном обзоре вы узнаете, как создать и прочитать XML средствами Visual Basic .NET.

Создание XML


Начнем, пожалуй, с простого примера:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
'создаем MemoryStream, в который будем писать XML
Dim myMemoryStream As New IO.MemoryStream
'создаем XmlTextWriter, указываем объект – myMemoryStream,
'в который будем писать XML, и кодировку windows-1251
Dim myXml As New System.Xml.XmlTextWriter(myMemoryStream, _
System.Text.Encoding.GetEncoding(1251))


'создаем XML
myXml.WriteStartDocument()
'устанавливаем параметры форматирования
'xml-документа
'в данном случае –
'System.Xml.Formatting.Indented - форматирует отступы
'в дочерних элементах в соответствии с параметрами
'настройки Indentation и IndentChar
myXml.Formatting = System.Xml.Formatting.Indented
'длина отступа
myXml.Indentation = 2


'создаем элемент
myXml.WriteStartElement("test")

'создаем элемент
myXml.WriteStartElement("item")
'записываем строку
myXml.WriteString("привет, это тест")
'закрываем элемент
myXml.WriteEndElement()


'создаем элемент
myXml.WriteStartElement("data")
'записываем параметры
myXml.WriteAttributeString("name", "Фамилия Имя")
myXml.WriteAttributeString("birthday", "27.02.2007")
'закрываем элемент
myXml.WriteEndElement()


'создаем элемент
myXml.WriteEndElement()


'заносим данные в myMemoryStream
myXml.Flush()

В результате выполнения данного кода можно получить примерно такой XML-файл:

 


<test>
  <item>привет, это тестitem>
  <data name="Фамилия Имя" birthday="27.02.2007" />
test>


В данном примере XML записывается в MemoryStream, однако, вместо MemoryStream можно использовать любой другой Stream, например FileStream, либо еще проще, записывать данные сразу в файл, для этого просто вместо myMemoryStream в пятой строке укажите путь к файлу:

005:
006:
Dim myXml As New System.Xml.XmlTextWriter("C:myxml.xml", _
System.Text.Encoding.GetEncoding(1251))


Чтение
XML


Читать XML также легко, как и создавать, посему начну с примера:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
Dim myXml As New System.Xml.XPath.XPathDocument(myMemoryStream)
Dim sItem As String = ""
'читаем значение элемента item
sItem = _
yXml.CreateNavigator.SelectSingleNode("/test/item").Value
Dim sName As String = ""
Dim sBirthday As String = ""
'читаем значение name элемента data
sName = _
myXml.CreateNavigator.SelectSingleNode("/test/data/@name").Value
'читаем значение birthday элемента data
sName = _
myXml.CreateNavigator.SelectSingleNode("/test/data/@birthday").Value

В данном случае, вместо myMemoryStream в первой строке можно указать непосредственно путь к XML-файлу.
Метод SelectSingleNode получает значение первого элемента указанного в XPath. Если вызвать этот метод еще раз, то он возвратит значение следующего элемента, и т.д.


Вот собственно и все, если у вас возникнут вопросы, вы всегда можете задать их на форуме http://vbnet.su/forum/

Удачи!
Смотрите также
Visual Basic .NET 2005 (Framework 2.0) Использование XML.Serialization
Автор: Алексей Немиро | добавлено: 07 декабря 2008 / 19:25 | просмотров: 3684 (+3322)
В данном обзоре речь пойдет об использование XML.Serialization в .NET и ее применении на примере сохранения и считывания настроек программы с использованием синтаксиса языка Visual Basic .NET.
У нас есть
Мозолистые пальцы
Всего:1240
С ногами:2480
Красные глаза
Всего:248
Левых:124
Правых:124
Горячие мозги
Всего:124
Левых:3
Правых:27
Еще какие-то:94
Сегодня сказали
Сегодня еще никто ничего не говорил :-(
Архив сказанного ранее
Букварь всему голова
Книги на VBNet.SuАльманах программиста. Том 4. Безопасность в Microsoft .NET
Альманах представляет собой тематическую подборку статей из журнала MSDN Magazine/Русская Редакция. Издание адресовано широкому кругу программистов, интересующихся современными и перспективными информационными технологиями. Четвертый том альманаха, ... подробнее..
Автор:
Цена: 241 руб. КУПИТЬ
Все книги на VBNet.Su
TOP 10 пользователей
Алексей Немиро65.2275660625+
Ігор47.181654625+
kibernetics16.0390645+
Kolyasik5.9658263125+
rublenko3.734375+
Arseny3.6845703125+
Skywalker2.904296875+
ostgals2.857421875+
5acredphoenix2.708994375+
andrey_z5z2.3857511875+
Все пользователи


Реклама: