다음을 통해 공유


WsReadValue 함수(webservices.h)

읽기 권한자에서 텍스트를 읽고 지정된 값 형식에 따라 구문 분석합니다.

판독기는 현재 위치에서 다음 Start 또는 End 요소까지 읽고 지정된 값 형식에 따라 구문 분석합니다. Reader가 Start 또는 End 요소에 이미 있는 경우 버퍼는 비어 있습니다.

주석은 건너뛰고 CDATA 콘텐츠는 다른 요소 콘텐츠와 동일하게 처리됩니다.

선행 및 후행 공백은 무시됩니다. 지정된 값 형식에 따라 값을 구문 분석할 수 없는 경우 함수는 WS_E_INVALID_FORMAT 오류 코드를 반환합니다. ( Windows Web Services 반환 값을 참조하세요.)

참고 이 함수는 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 개체에 대한 포인터입니다.

반환 값

이 함수는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
WS_E_INVALID_FORMAT
입력 데이터가 예상 형식이 아니거나 예상 값이 없습니다.
WS_E_QUOTA_EXCEEDED
할당량을 초과했습니다.

설명

정수 값이 포함된 요소를 읽는 예제입니다.

// 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