# Streaming large xml files using LibExpat package downloaded from GitHub

**URL:** <https://discourse.julialang.org/t/streaming-large-xml-files-using-libexpat-package-downloaded-from-github/25254>\
**Category:** General Usage\
**Created:** [June 13, 2019, 3:59pm UTC](https://discourse.julialang.org/t/streaming-large-xml-files-using-libexpat-package-downloaded-from-github/25254 "2019-06-13T15:59:49Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![bsnyh](https://avatars.discourse-cdn.com/v4/letter/b/ce7236/32.png) [@bsnyh](https://discourse.julialang.org/u/bsnyh)\
**Post date:** [June 13, 2019, 3:59pm UTC](https://discourse.julialang.org/t/streaming-large-xml-files-using-libexpat-package-downloaded-from-github/25254/1 "2019-06-13T15:59:49Z")

</div>

Hi, I was trying to figure out the source code of the LibExpat package. The following is the part which confuses me.

```julia
mutable struct XPCallbacks
        start_cdata::Function
        end_cdata::Function

        comment::Function
        character_data::Function

        default::Function
        default_expand::Function

        start_element::Function
        end_element::Function
end

mutable struct XPStreamHandler{D}
        cbs::XPCallbacks
        parser::XML_Parser
        data::D   
end

```

What confuses me is, what is exactly `XML_Parser` ? I can not find it anywhere. The other question is, it is really not easy to find any documentation about the LibExpat package, especially the part to stream large xml files. I was wondering, could anyone help me with any related info? Many thanks.

---

<div class="post-metadata">

**Author:** ![bsnyh](https://avatars.discourse-cdn.com/v4/letter/b/ce7236/32.png) [@bsnyh](https://discourse.julialang.org/u/bsnyh)\
**Post date:** [October 3, 2019, 12:09pm UTC](https://discourse.julialang.org/t/streaming-large-xml-files-using-libexpat-package-downloaded-from-github/25254/2 "2019-10-03T12:09:27Z")

</div>

@ [Bartosz\_Pankratz](https://discourse.julialang.org/u/Bartosz_Pankratz)
