Как использовать XmlNode () в результате работы веб-сервиса в VB.NET?

Веб-сервис просто возвращает XmlNode ():

Dim nodes() As XmlNode = CType(result.handler, XmlNode())

Прежде всего, как этот результат можно рассматривать как простой xml (в Visual Studio)?

И затем, как использовать этот результат и перемещаться / выбирать из него конкретные элементы?

1. как этот результат можно просмотреть как простой xml (в Visual Studio)?: Вы имеете в виду лайк при отладке? Если просто навести указатель мыши на переменную, можно просмотреть ее содержимое! 2. как использовать этот результат и перемещаться / выбирать из него конкретные элементы?: У вас есть класс, представляющий содержимое этого результата? Если это так, вы можете десериализовать XmlNode в свой объект, я думаю, это самый простой способ, в противном случае вы можете просто использовать библиотеку Xml для навигации по нему. Пожалуйста, дайте больше информации о том, чего вы действительно хотите.
Pedro Gaspar 28.12.2018 02:01

1. Я не имею в виду отладчик в этом контексте. Это сводит меня с ума при просмотре вложенных объектов;) Я хотел бы просмотреть всю структуру xml как документ dom. Ищу что-то вроде $ nodesArray-> toXmlString () 2. На данный момент у них нет целевого класса. должны использовать библиотеку Xml, но что использовать, если у вас нет XmlDocument, а есть только XmlNodes ()?

JKB 28.12.2018 02:48

Поскольку это массив, вам нужно преобразовывать по одному элементу в массиве за раз. Поэтому я обычно использую что-то вроде этой строки xml = string.Join ("\ n", nodes.Select (x => x.ToString ()));

jdweng 28.12.2018 12:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
391
1

Ответы 1

First of all, how can this result be viewed as plain xml (in visual studio)?

Вы можете использовать метод XmlNode.WriteTo(XmlWriter), используя объект XmlWriter, созданный для записи в объект StringBuilder (документация), например:

Imports System.Text
Imports System.Xml

'[...]
Public Function NodesToString(nodes() As XmlNode) As String

   Dim sb As New StringBuilder()

   Dim settings As New XmlWriterSettings()
   settings.ConformanceLevel = ConformanceLevel.Fragment
   settings.Indent = True

   Dim writer = XmlWriter.Create(sb, settings)
   For Each node In nodes
      node.WriteTo(writer)
   Next
   writer.Close()

   Return sb.ToString()

End Function

После этого все содержимое ваших узлов должно быть на вашем объекте StringBuilder, и простой sb.ToString() покажет вам все это.

And then, how to use this result and navigate / select concrete items from it?

XmlNode - это базовый класс для множества элементов в библиотеке System.Xml, даже для классов XmlDocument и XmlElement, так что здесь присутствует много «возможностей навигации» XML.

Как указано в документации:

This class implements the W3C Document Object Model (DOM) Level 1 Core and the Core DOM Level 2. The DOM is an in-memory (cache) tree representation of an XML document. XmlNode is the base class in the .NET implementation of the DOM. It supports XPath selections and provides editing capabilities. The XmlDocument class extends XmlNode and represents an XML document. You can use XmlDocument to load and save XML data. It also includes methods for node creation. See XML Document Object Model (DOM) for more information.

Эти свойства или методы можно использовать для навигации по узлам XML, например:

  • XmlNode.FirstChild свойство
  • XmlNode.NextSibling свойство
  • XmlNode.CreateNavigator() метод
  • XmlNode.SelectNodes() метод (с использованием выражения XPath)
  • Метод XmlNode.SelectSingleNode() (с использованием выражения XPath)

Другие вопросы по теме