Documentation

xml

Reads structured data from an XML file.

The XML file is parsed into an array of dictionaries and strings. XML nodes can be elements or strings. Elements are represented as dictionaries with the following keys:

The XML file in the example contains a root news tag with multiple article tags. Each article has a title, author, and content tag. The content tag contains one or more paragraphs, which are represented as p tags.

Example

#let find-child(elem, tag) = {
  elem.children
    .find(e => "tag" in e and e.tag == tag)
}

#let article(elem) = {
  let title = find-child(elem, "title")
  let author = find-child(elem, "author")
  let pars = find-child(elem, "content")

  [= #title.children.first()]
  text(10pt, weight: "medium")[
    Published by
    #author.children.first()
  ]

  for p in pars.children {
    if type(p) == dictionary {
      parbreak()
      p.children.first()
    }
  }
}

#let data = xml("example.xml")
#for elem in data.first().children {
  if type(elem) == dictionary {
    article(elem)
  }
}
Preview

Parameters
🌐 XML Function – Typst DocumentationTypstGitHubDiscordMastodonBlueskyLinkedInTypstQuestion markQuestion markQuestion markWarningQuestion mark - typst.app

xml() -> any

source
str or bytes
Required Positional
🌐 XML Function – Typst DocumentationTypstGitHubDiscordMastodonBlueskyLinkedInTypstQuestion markQuestion markQuestion markWarningQuestion mark - typst.app

A path to an XML file or raw XML bytes.

Definitions
🌐 XML Function – Typst DocumentationTypstGitHubDiscordMastodonBlueskyLinkedInTypstQuestion markQuestion markQuestion markWarningQuestion mark - typst.app

decode
🌐 XML Function – Typst DocumentationTypstGitHubDiscordMastodonBlueskyLinkedInTypstQuestion markQuestion markQuestion markWarningQuestion mark - typst.app
xml.decode is deprecated, directly pass bytes to xml instead

Reads structured data from an XML string/bytes.

xml.decode() -> any

data
str or bytes
Required Positional
🌐 XML Function – Typst DocumentationTypstGitHubDiscordMastodonBlueskyLinkedInTypstQuestion markQuestion markQuestion markWarningQuestion mark - typst.app

XML data.