From e7187ff31f047f4d64d81edd5f8be84e2c7ab6e5 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Mon, 16 Jan 2006 20:43:02 +0100 Subject: [PATCH] msxml: Fix for get_nodeValue on attributes. --- dlls/msxml3/node.c | 6 +++++- dlls/msxml3/tests/domdoc.c | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 44d4b8f25f4..4001ad4d18f 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -225,10 +225,14 @@ static HRESULT WINAPI xmlnode_get_nodeValue( switch ( This->node->type ) { case XML_ATTRIBUTE_NODE: + { + xmlChar *content = xmlNodeGetContent(This->node); V_VT(value) = VT_BSTR; - V_BSTR(value) = bstr_from_xmlChar( This->node->name ); + V_BSTR(value) = bstr_from_xmlChar( content ); + xmlFree(content); r = S_OK; break; + } case XML_TEXT_NODE: V_VT(value) = VT_BSTR; V_BSTR(value) = bstr_from_xmlChar( This->node->content ); diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 6bf26cbc512..5d745ced177 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -404,6 +404,12 @@ void test_domnode( void ) ok( r == S_OK, "get_baseName returned wrong code\n"); ok( lstrcmpW(str,szdl) == 0, "basename was wrong\n"); + r = IXMLDOMNode_get_nodeValue( node, &var ); + ok( r == S_OK, "returns %08lx\n", r ); + ok( V_VT(&var) == VT_BSTR, "vt %x\n", V_VT(&var)); + ok( !lstrcmpW(V_BSTR(&var), szstr1), "nodeValue incorrect\n"); + VariantClear(&var); + r = IXMLDOMNode_get_childNodes( node, NULL ); ok( r == E_INVALIDARG, "get_childNodes returned wrong code\n"); -- 2.11.4.GIT