# vtkReader.parse is not a function

**URL:** https://discourse.vtk.org/t/vtkreader-parse-is-not-a-function/7485
**Category:** Web
**Created:** [December 23, 2021, 10:33am UTC](https://discourse.vtk.org/t/vtkreader-parse-is-not-a-function/7485 "2021-12-23T10:33:55Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![bernland](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/b19c9b/32.png) [@bernland](https://discourse.vtk.org/u/bernland)
#### Post date: [December 23, 2021, 10:33am UTC](https://discourse.vtk.org/t/vtkreader-parse-is-not-a-function/7485/1 "2021-12-23T10:33:55Z")

</div>

Running the below code

```auto
const vtkReader = vtkXMLPolyDataReader.newInstance();
vtkReader.parse(xmlStr);

```

results in **TypeError: vtkReader.parse is not a function**. What am I missing here?

---

<div class="post-metadata">

### Author: ![Donny\_Zimmerman](https://discourse.vtk.org/user_avatar/discourse.vtk.org/donny_zimmerman/32/301_2.png) [@Donny\_Zimmerman](https://discourse.vtk.org/u/Donny_Zimmerman)
#### Post date: [December 27, 2021, 2:23pm UTC](https://discourse.vtk.org/t/vtkreader-parse-is-not-a-function/7485/2 "2021-12-27T14:23:50Z")

</div>

I think the function is called parseXML.

> **[XMLPolyDataReader](https://kitware.github.io/vtk-js/api/IO_XML_XMLPolyDataReader.html)**
>
> IntroductionvtkXMLPolyDataReader is a source object that parses a VTK XML input file. MethodsextendMethod used to decorate a given object (publicAPI+model) with vtkXMLPolyDataReader characteristics.

---

<div class="post-metadata">

### Author: ![Donny\_Zimmerman](https://discourse.vtk.org/user_avatar/discourse.vtk.org/donny_zimmerman/32/301_2.png) [@Donny\_Zimmerman](https://discourse.vtk.org/u/Donny_Zimmerman)
#### Post date: [December 27, 2021, 8:41pm UTC](https://discourse.vtk.org/t/vtkreader-parse-is-not-a-function/7485/3 "2021-12-27T20:41:57Z")

</div>

I looked at some previous code I did and found out I used the HttpDataAccessHelper.fetchBinary call to get the xml polydata file and then call parseAsArrayBuffer on the vtkXMLPolyDataReader object, passing in the results of the fetchBinary call.

```auto
function buildGlobeRenderer() {

let url = 'HIDDEN/rendercontent/conus.vtp';

const progressCallback = (progressEvent) => {
if (progressEvent.lengthComputable) {
const percent = Math.floor(
(100 * progressEvent.loaded) / progressEvent.total
);
//progressContainer.innerHTML = Loading ${percent}%;
} else {
/progressContainer.innerHTML = macro.formatBytesToProperUnit(
progressEvent.loaded
);/
}
};

HttpDataAccessHelper.fetchBinary(url, {
progressCallback,
}).then((binary) => {
createGlobe(binary);
});
}

function createGlobe(fileContents) {

const vtpReader = vtkXMLPolyDataReader.newInstance();
vtpReader.parseAsArrayBuffer(fileContents);

const img = new Image();
img.onload = function textureLoaded() {
const globeTexture = vtkTexture.newInstance();
//globeTexture.setInterpolate(true);
globeTexture.setImage(img);
globeMapper.setInputConnection(vtpReader.getOutputPort());
globeActor.setMapper(globeMapper);
globeActor.addTexture(globeTexture);
globeActor.getProperty().setLighting(false);
globeRenderer.setLayer(0);
globeRenderer.addActor(globeActor);
globeRenderer.resetCamera();
renderWindow.render();
};
img.src = 'HIDDEN/rendercontent/48USAcolshade-grey.bmp';

```
