共用方式為


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

要讀取至 start 元素的讀取器。

[in, optional] localName

元素應為的localName名稱。 如果 為 NULL,則允許任何 localName。

[in, optional] ns

專案應為的命名空間。 如果 為 NULL,則允許任何命名空間。

found

如果指定的話,這會指出是否找到專案,以及如果同時指定localName和命名空間,則為相符專案。 如果未指定,且找不到元素或localName和命名空間不相符,則會傳回 WS_E_INVALID_FORMAT。 (請參閱 Windows Web 服務傳回值。)

[in, optional] error

指定函式失敗時應該儲存其他錯誤資訊的位置。

傳回值

此函式可以傳回其中一個值。

傳回碼 Description
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 指出找到元素,則 WsReadStartElementWsReadNode 可用來將讀取器移出開始元素的內容。

WsSkipNode 可用來略過專案及其所有子系,讓讀取器位於對應的 end 元素之後 WS_XML_NODE

此函式可能會因為 WsReadNode 中列出的任何原因而失敗。

規格需求

需求
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 webservices.h
程式庫 WebServices.lib
Dll WebServices.dll