Функция 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
Указывает, где должны храниться дополнительные сведения об ошибке в случае сбоя функции.
Возвращаемое значение
Эта функция может возвращать одно из этих значений.
Код возврата | Описание |
---|---|
|
Входные данные не были в ожидаемом формате или не имели ожидаемого значения. |
|
Превышена квота. |
Комментарии
Рассмотрим следующий 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 |