Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
18 / 17 / 2
Регистрация: 11.01.2013
Сообщений: 109
.NET 3.x

Получить количество элементов в корневом теге xml

03.04.2013, 00:34. Показов 2540. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Структура xml довольно проста:
XML
1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<accounts>
  <account nick="vv" accountLogin="bvnvbn" accountPass="vbn" />
   <account nick="xcvx" accountLogin="xcvcv" accountPass="cvxcvx" />
  <account nick="zxc" accountLogin="zxczx" accountPass="zczx" />
  <account nick="111111" accountLogin="1111111" accountPass="11111111111111111" />
</accounts>
Обращаюсь к первому элементу и его атрибутам с помощью такого кода:

VB.NET
1
2
3
4
5
6
7
Dim DataXml As XDocument = XDocument.Load("C:\account.xml")
            Dim xe As XElement = DataXml.Element("accounts")
            Dim xee As XElement = xe.Element("account")
            Dim nick = xee.Attribute("nick").Value
            Dim accountLogin = xee.Attribute("accountLogin").Value
            Dim accountPass = xee.Attribute("accountPass").Value
            DataGridViewAccounts.Rows.Add(nick, accountLogin, accountPass)
Но, чтобы получить значения атрибутов следующих, необходимо пропустить этот код через цикл, но у меня возникла проблема получения количества элементов account в корневом accounts. Как получить это значение в LINQ XML?

Добавлено через 1 час 2 минуты
Получать количество, в моем случае, совсем необязательно. Достаточно использовать цикл For Each .... Next.

Решение:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'Перед заполнение ячеек DGV (DataGridView) очищаем ранее занесенные строки. Чистка выполняется потому, что 
'заполнение и добавление строк происходит по время загрузки формы, и при последующих открытиях формы с 
'DGV происходит дублирование
 
DataGridViewAccounts.Rows.Clear()
Dim DataXml As XDocument = XDocument.Load("C:\account.xml") 'Загружаем файл
 
'проходим по каждому элементу в нашем корневом теге accounts
'(этот элемент сразу доступен через свойство DataXml.Root)
 
For Each el As XElement In DataXml.Root.Elements
 
' Получаем значения атрибутов в каждом элементе account, не путайте с accounts (корневым)                
Dim nick = el.Attribute("nick").Value
Dim accountLogin = el.Attribute("accountLogin").Value
Dim accountPass = el.Attribute("accountPass").Value
 
' Заполняем DGV
DataGridViewAccounts.Rows.Add(nick, accountLogin, accountPass)
Next
Добавлено через 1 час 17 минут
Но возник встречный вопрос!
Как мне получить индекс элемента xml-файла, выбирая нужную строку в DGV http://puu.sh/2s4gK/99fdd5701f?
Как определить текущую выделенную строку в DGV я знаю, но как использовать этот индекс при обращении к xml-файлу?

Добавлено через 23 часа 56 минут
Ребята, что, совсем нет идей или готовых решений? Уже вторые сутки копаюсь и не могу двинуться дальше
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.04.2013, 00:34
Ответы с готовыми решениями:

Парсинг кодировки в начальном теге xml
Есть строка &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;, &lt;?xml version=&quot;1.0&quot; encoding=&quot;ANSI-1251&quot;?&gt;, или любая другая, начинающаяся на &lt;?xml....

Определить количество свободного места в корневом каталоге диска
Преподаватель дал задание написать программу, которая находит свободное место в корневом каталоге диска Вот собственно, что получилось,...

Получить количество отрицательных элементов и количество нулевых элементов массива
Дан массив А из n действительных чисел: a1, …, an. Вычислить: a12, a1a2, a1a3, …, a1an; Получить количество отрицательных элементов...

1
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
03.04.2013, 13:42
VB.NET
1
2
3
xNodes = DataXml.GetElementsByTagName("accounts") 'Получаем коллекцию элементов
N = xNodes.Count 'Количество элементов в коллекции
xNode = xNodes.Item(Index) 'Получаем узел по индексу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.04.2013, 13:42
Помогаю со студенческими работами здесь

Определить количество файлов или подкаталогов в корневом каталоге, с полными правами доступа
3) Определить количество файлов или подкаталогов в корневом каталоге, к которым все имеют полные права доступа

Как в апплете получить значение, заданное в теге <param>?
subj Заранее спасибо

Как получить ширину и высоту видео в теге <video>?
Что-то делаю не в то время, но не могу понять что, т. к. при первой загрузке страницы ширина и высота видео получаются, а при перезагрузке...

Получить массив элементов дерева XML, getElementsByTag()
Привет всем. Не могу понять как получить в C# массив элементов дерева по тегу. В JS это делается легко... &lt;sectionsdata&gt; ...

Как подсчитать количество вложенных элементов в xml?
Доброго времени суток После долгих поисков как парсить json, я решил сделать по другому.. решил конвертировать json в xml.. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru