Skip to content

Releases: JuliaData/XML.jl

v0.4.1

Choose a tag to compare

@mathieu17g mathieu17g released this 05 Jul 09:53
ace4398

New convenience API for element-only child iteration (#78, #80):

  • eachelement(node) — lazy iterator over the child elements of a Node or LazyNode, skipping the whitespace Text nodes that v0.4 preserves on pretty-printed documents (and every other non-element node).
  • elements(node) — the collected Vector counterpart.
for el in eachelement(node)
    # el is an Element node
end

The LazyNode method streams via eachchildnode, so no intermediate child vector is materialized. The migration guide now teaches this as the idiomatic element-only loop — the manual nodetype filter remains the form that also runs on 0.3.x.

Non-breaking addition: any environment with XML = "0.4" compat picks it up on update.

Full changelog: CHANGELOG.md

v0.4.0

Choose a tag to compare

@mathieu17g mathieu17g released this 03 Jul 20:39
056b97f

Breaking release — ground-up rewrite of the internals: token-based parser, Cursor streaming (StAX-style) API, XPath subset, configurable well-formedness. Upgrading from 0.3.x? See the migration guide.

Added

  • Cursor — allocation-light forward streaming (next!, for_each_child, skip_element!).
  • xpath(node, path) — an XPath 1.0 subset.
  • wellformed = :lenient | :structural | :strict on parse/read (default :structural).
  • XMLTokenizer streaming tokenizer; AbstractTrees package extension.

Changed

  • Node is parametric (Node{S}), attributes are Vector{Pair} behind an attributes accessor.
  • parse/read decode entities (value() returns &, not &); write auto-escapes.
  • Inter-element whitespace is preserved as Text nodes; duplicate attributes error; malformed documents are rejected by default (:lenient restores the permissive behavior).
  • Minimum Julia is 1.10. Substantially faster and leaner than 0.3.x — see PERFORMANCE-v0.4.md.

Removed

  • The 0.3 streaming internals: XML.Raw, next/prev, single-argument parent/depth, nodes_equal, escape!/unescape!, DTDBody — replacements in the migration guide.

Full details: CHANGELOG.

v0.3.9

Choose a tag to compare

@mathieu17g mathieu17g released this 20 Jun 20:28
6671cc4

What's Changed

New Contributors

Full Changelog: v0.3.8...v0.3.9

v0.3.8

Choose a tag to compare

@github-actions github-actions released this 04 Sep 12:45

XML v0.3.8

Diff since v0.3.7

Merged pull requests:

  • Amend XML.write to respect xml:space="preserve" (#49) (@TimG1964)

v0.3.7

Choose a tag to compare

@github-actions github-actions released this 02 Sep 10:13

XML v0.3.7

Diff since v0.3.6

Merged pull requests:

Closed issues:

  • Performance Regression in v0.3.6 with LazyNode Usage (#46)

v0.3.6

Choose a tag to compare

@github-actions github-actions released this 29 Jul 23:30

XML v0.3.6

Diff since v0.3.5

  • xml:space="preserve" is now respected

Merged pull requests:

Closed issues:

  • How to close file opened via XML.read(filename, LazyNode) ? (#40)
  • xml:space="preserve" not honored (#43)
  • Readme on copying a Node is out of date (#44)

v0.3.5

Choose a tag to compare

@github-actions github-actions released this 24 Mar 19:52
f39e50d

XML v0.3.5

Diff since v0.3.4

Merged pull requests:

Closed issues:

  • Empty first line (#28)
  • Incorrect escaping of & without a trailing space (#31)
  • The depth function is hardcoded to return 1 (#36)

v0.3.4

Choose a tag to compare

@github-actions github-actions released this 03 Sep 14:39

XML v0.3.4

Diff since v0.3.3

Closed issues:

  • Easier Interface for Creating XML Documents? (#25)
  • Overload keys? (#26)

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 18 May 13:00
11a6a55

XML v0.3.3

Diff since v0.3.2

Merged pull requests:

Closed issues:

  • Help building XML documents programmatically (#21)
  • Constants like pi or expressions like nothing, are not interpreted but result in "pi" and "nothing" (#22)

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 08 Dec 19:58