------------------------------------------------------------------------------
| 374 | |
| 375 | //------------------------------------------------------------------------------ |
| 376 | vtkXMLDataElement* vtkXMLUtilities::ReadElementFromStream(istream& is, int encoding) |
| 377 | { |
| 378 | vtkXMLDataElement* res = nullptr; |
| 379 | vtkXMLDataParser* xml_parser = vtkXMLDataParser::New(); |
| 380 | xml_parser->SetAttributesEncoding(encoding); |
| 381 | |
| 382 | xml_parser->SetStream(&is); |
| 383 | if (xml_parser->Parse()) |
| 384 | { |
| 385 | res = xml_parser->GetRootElement(); |
| 386 | // Bump up the ref count since we are going to delete the parser |
| 387 | // which actually owns the element |
| 388 | res->Register(nullptr); |
| 389 | vtkXMLUtilities::UnFactorElements(res); |
| 390 | } |
| 391 | |
| 392 | xml_parser->Delete(); |
| 393 | return res; |
| 394 | } |
| 395 | |
| 396 | //------------------------------------------------------------------------------ |
| 397 | vtkXMLDataElement* vtkXMLUtilities::ReadElementFromString(const char* str, int encoding) |