@@ -125,23 +125,17 @@ static void generateXmlParseBody(GenerationContext context) {
125
125
126
126
// Include an XML body parser used to deserialize documents from HTTP responses.
127
127
writer .addImport ("SerdeContext" , "__SerdeContext" , "@aws-sdk/types" );
128
+ writer .addImport ("getValueFromTextNode" , "__getValueFromTextNode" , "@aws-sdk/smithy-client" );
128
129
writer .addDependency (AwsDependency .XML_PARSER );
129
130
writer .addImport ("parse" , "xmlParse" , "fast-xml-parser" );
130
131
writer .openBlock ("const parseBody = (streamBody: any, context: __SerdeContext): any => collectBodyString(streamBody, context).then(encoded => {" ,
131
132
"});" ,
132
133
() -> {
133
134
writer .openBlock ("if (encoded.length) {" , "}" , () -> {
134
- writer .write ("const parsedObj = xmlParse(encoded, { attributeNamePrefix: '', "
135
+ writer .write ("const parsedObj = __getValueFromTextNode( xmlParse(encoded, { attributeNamePrefix: '', "
135
136
+ "ignoreAttributes: false, parseNodeValue: false, tagValueProcessor: (val, tagName) "
136
- + "=> decodeEscapedXML(val) });" );
137
- writer .write ("const textNodeName = '#text';" );
138
- writer .write ("const key = Object.keys(parsedObj)[0];" );
139
- writer .write ("const parsedObjToReturn = parsedObj[key];" );
140
- writer .openBlock ("if (parsedObjToReturn[textNodeName]) {" , "}" , () -> {
141
- writer .write ("parsedObjToReturn[key] = parsedObjToReturn[textNodeName];" );
142
- writer .write ("delete parsedObjToReturn[textNodeName];" );
143
- });
144
- writer .write ("return parsedObjToReturn;" );
137
+ + "=> decodeEscapedXML(val) }));" );
138
+ writer .write ("return parsedObj[Object.keys(parsedObj)[0]];" );
145
139
});
146
140
writer .write ("return {};" );
147
141
}
0 commit comments