次の方法で共有


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

関数が失敗した場合に追加のエラー情報を格納する場所を指定します。

戻り値

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
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 を使用して、リーダーを start 要素の後の要素のコンテンツに移動できます。

WsSkipNode を使用して、要素とそのすべての子をスキップし、対応する end 要素の後の WS_XML_NODE にリーダーを配置します。

この関数は、 WsReadNode に記載されている理由のいずれかで失敗する可能性があります。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー webservices.h
Library WebServices.lib
[DLL] WebServices.dll