Поделиться через


Функция WsReadToStartElement (webservices.h)

Перемещает читателя к следующему начальном элементу, пропуская пробелы и комментарии, если это необходимо. При необходимости можно также проверить localName и пространство имен элемента .

Синтаксис

HRESULT WsReadToStartElement(
  [in]           WS_XML_READER       *reader,
  [in, optional] const WS_XML_STRING *localName,
  [in, optional] const WS_XML_STRING *ns,
                 BOOL                *found,
  [in, optional] WS_ERROR            *error
);

Параметры

[in] reader

Средство чтения, которое считывается в начальный элемент.

[in, optional] localName

Имя localName, которым должен быть элемент. При значении NULL допускается любое имя localName.

[in, optional] ns

Пространство имен, которым должен быть элемент. Если значение РАВНО NULL, разрешено любое пространство имен.

found

Если этот параметр задан, будет ли найден элемент и совпадают ли localName и пространство имен , если они также указаны. Если не указано, а элемент не найден или localName и пространство имен не совпадают, возвращается WS_E_INVALID_FORMAT. (См. раздел Возвращаемые значения веб-служб Windows.)

[in, optional] error

Указывает, где должны храниться дополнительные сведения об ошибке в случае сбоя функции.

Возвращаемое значение

Эта функция может возвращать одно из этих значений.

Код возврата Описание
WS_E_INVALID_FORMAT
Входные данные не были в ожидаемом формате или не имели ожидаемого значения.
WS_E_QUOTA_EXCEEDED
Превышена квота.

Комментарии

Рассмотрим следующий XML-код:

<!-- A purchase order -->
        <PurchaseOrder xmlns='http://tempuri.org'>
            <Item>
                Pencil
            </Item>
        </PurchaseOrder>

В следующих примерах показано поведение WsReadToStartElement , когда средство чтения расположено в различных местах документа.

WS_XML_STRING purchaseOrder = WS_XML_STRING_VALUE("PurchaseOrder");
WS_XML_STRING item = WS_XML_STRING_VALUE("Item");
WS_XML_STRING ns = WS_XML_STRING("http://tempuri.org");
WS_ERROR* error = NULL;

// Example 1: Reader on comment, element has specified name and namespace, found argument is not provided
HRESULT hr = WsReadToStartElement(reader, &purchaseOrder, &ns, NULL, error);
// hr = NOERROR, the reader is positioned on <PurchaseOrder>

// Example 2: Reader on comment, element has specified name and namespace, found argument is provided
BOOL found;
HRESULT hr = WsReadToStartElement(reader, &purchaseOrder, &ns, found, error);
// hr = NOERROR, found = TRUE, the reader is positioned on <PurchaseOrder>

// Example 3: Reader on comment, element does not have specified name and namespace, found argument is not provided
HRESULT hr = WsReadToStartElement(reader, &item, &ns, NULL, error);
// hr = WS_E_INVALID_FORMAT, the reader is faulted

// Example 4: Reader on comment, element does not have specified name and namespace, found argument is provided
BOOL found;
HRESULT hr = WsReadToStartElement(reader, &item, &ns, &found, error);
// hr = NOERROR, found = FALSE, the reader is positioned on <PurchaseOrder>

// Example 5: Reader on comment, name and namespace not specified, found argument is provided
BOOL found;
HRESULT hr = WsReadToStartElement(reader, NULL, NULL, &found, error);
// hr = NOERROR, found = TRUE, the reader is positioned on <PurchaseOrder>

// Example 6: Reader on </Item>, name and namespace not specified, found argument is not provided
HRESULT hr = WsReadToStartElement(reader, NULL, NULL, NULL, error);
// hr = WS_E_INVALID_FORMAT, the reader is faulted

// Example 7: Reader on </Item>, name and namespace not specified, found argument is provided
BOOL found;
HRESULT hr = WsReadToStartElement(reader, NULL, NULL, &found, error);
// hr = NOERROR, found = FALSE, the reader is positioned on </Item>

Если WsReadToStartElement указывает, что элемент найден, для перемещения средства чтения за начальный элемент в содержимое элемента можно использовать WsReadStartElement или WsReadNode .

WsSkipNode можно использовать для пропуска элемента и всех его дочерних элементов, оставляя средство чтения на WS_XML_NODE после соответствующего конечного элемента.

Эта функция может завершиться сбоем по любой из причин, перечисленных в WsReadNode.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header webservices.h
Библиотека WebServices.lib
DLL WebServices.dll