set reader=##class(%XML.Reader).%New()
if $IsObject(xmlStr){
set status=reader.OpenStream(xmlStr)
}else{
set status=reader.OpenString(xmlStr)
}
if $$$ISERR(status) {
Quit {}
}
set doc=reader.Document
s XMLNode=doc.GetDocumentElement()
s docObj=##class(%Document.Object).%New()
do docObj.loadXML(XMLNode)
s streamobj=##class(%Library.GlobalCharacterStream).%New()
s ret=docObj.%ToJSONStream(.streamobj)
s jsonObj=##class(%Library.DynamicObject).%New()
s obj=jsonObj.%FromJSON(streamobj)