WsReadValue 函式 (webservices.h)
從讀取器讀取文字,並根據指定的實值型別加以剖析。
讀取器會從其目前位置讀取到下一個 Start 或 End 元素,並根據指定的實數值型別加以剖析。 如果讀取器已經位於 Start 或 End 元素上,則緩衝區會保持空白。
略過批註,且 CDATA 內容會視為與其他元素內容相同。
會忽略開頭和尾端空白字元。 如果無法根據指定的實值型別剖析值,函式會傳回 WS_E_INVALID_FORMAT 錯誤碼。 (請參閱 Windows Web 服務傳回值。)
注意 此函式可能會因為 WsReadNode中列出的任何原因而失敗。
語法
HRESULT WsReadValue(
[in] WS_XML_READER *reader,
[in] WS_VALUE_TYPE valueType,
void *value,
[in] ULONG valueSize,
[in, optional] WS_ERROR *error
);
參數
[in] reader
讀取值的 XML 讀取器 指標。
[in] valueType
文字解譯類型。
value
如果根據指定的實值型別,剖析成功,則為剖析資料的指標。 所需的大小取決於實數值型別。 如需詳細資訊 ,請參閱WS_VALUE_TYPE 。
[in] valueSize
所擷取值的位元組大小。
[in, optional] error
WS_ERROR物件的指標,如果函式失敗,應該儲存錯誤的其他資訊。
傳回值
此函式可以傳回其中一個值。
傳回碼 | 描述 |
---|---|
|
輸入資料的格式不正確,或沒有預期的值。 |
|
超過配額。 |
備註
讀取包含整數值的元素範例。
// Advance the reader to the element
HRESULT hr = WsReadToStartElement(reader, localName, ns, NULL, error);
if (FAILED(hr))
{
return hr;
}
// Advance past the element to the content
hr = WsReadStartElement(reader, error);
if (FAILED(hr))
{
return hr;
}
// Read the content as an integer
__int32 i;
hr = WsReadValue(reader, WS_INT32_VALUE_TYPE, &i, sizeof(i), error);
if (FAILED(hr))
{
return hr;
}
// Read the end element
hr = WsReadEndElement(reader, error);
if (FAILED(hr))
{
return hr;
}
數值型別的文法。
WS_BOOL_VALUE_TYPE = "true"
| "false"
| "1"
| "0"
WS_INTxxx_VALUE_TYPE = sign? digits
WS_UINTxxx_VALUE_TYPE = digits
WS_FLOAT_VALUE_TYPE = WS_DOUBLE_VALUE_TYPE
WS_DOUBLE_VALUE_TYPE = sign? digits ("." digits)? exponent?
| "NaN"
| "INF"
| "-INF"
WS_DECIMAL_VALUE_TYPE = sign? digits ("." digits)?
WS_GUID_VALUE_TYPE = xxxxxxxx "-" xxxx "-" xxxx "-" xxxx "-" xxxxxxxxxxxx
WS_TIMESPAN_VALUE_TYPE = sign? (digits ".")? hh ":" mm ":" ss ("." d7)?
WS_DATETIME_VALUE_TYPE = yyyy "-" MM "-" dd "T" hh ":" mm ":" ss ("." d7)? tz?
WS_DURATION_VALUE_TYPE = sign? "P" (digits "Y") (digits "M")? (digits "D")?
| sign? "P" (digits "Y")? (digits "M")? (digits "D")?
| sign? "P" (digits "Y")? (digits "M")? (digits "D")
| sign? "P" (digits "Y")? (digits "M")? (digits "D")? "T" (digits "H") (digits "M")? (digits ("." digits)? "S")?
| sign? "P" (digits "Y")? (digits "M")? (digits "D")? "T" (digits "H")? (digits "M") (digits ("." digits)? "S")?
| sign? "P" (digits "Y")? (digits "M")? (digits "D")? "T" (digits "H")? (digits "M")? (digits ("." digits)? "S")
sign = "-"
| "+"
exponent = E sign? digits
| e sign? digits
digits = [0-9]+
x = [0-9]
| [A-F]
| [a-f]
yyyy = 1-9999
hh = 0-23
mm = 0-59
ss = 0-59
MM = 1-31
tz = "Z"
| sign hh ":" mm
d7 = digit digit? digit? digit? digit? digit? digit?
規格需求
最低支援的用戶端 | Windows 7 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | webservices.h |
程式庫 | WebServices.lib |
Dll | WebServices.dll |