Skip to content

Instantly share code, notes, and snippets.

@martin-honnen
martin-honnen / main.py
Created July 4, 2024 10:33
SaxonCHE 12.5 XQuery against XML inputsample
from saxonche import PySaxonProcessor
with PySaxonProcessor() as saxon_proc:
print(saxon_proc.version)
xdm_node = saxon_proc.parse_xml(xml_file_name='sample1.xml')
xquery_proc = saxon_proc.new_xquery_processor()
result = xquery_proc.run_query_to_value(input_xdm_item=xdm_node, query_text='//item => sort()')
@martin-honnen
martin-honnen / main.py
Created May 23, 2024 15:23
XSLT1PythonExample1OutputMethodText
from lxml import etree as ET
xml = ET.XML('''<order id="1021">
<items>
<item code="11">
<quantity>2</quantity>
<price>50</price>
</item>
<item code="21">
<quantity>1</quantity>
@martin-honnen
martin-honnen / doc1.xml
Created October 19, 2023 18:22
collection-uri and base-uri test
<doc>First test XML instance.</doc>
@martin-honnen
martin-honnen / Program.cs
Created September 5, 2023 09:15
MSXMLParseXmlExtensionExample1
using System.Xml.XPath;
using System.Xml.Xsl;
XslCompiledTransform xsltProcessor = new XslCompiledTransform();
xsltProcessor.Load("parseXmlExample1.xsl");
var xsltArguments = new XsltArgumentList();
xsltArguments.AddExtensionObject("http://example.com/mf", new XsltExtensions());
xsltProcessor.Transform("embedded-xml-sample1.xml", xsltArguments, Console.Out);
@martin-honnen
martin-honnen / sample1.xml
Last active August 7, 2023 13:30
XSLT document('') test in Gist code
<root>
<item>
<value>a</value>
</item>
<item>
<value>b</value>
</item>
</root>
@martin-honnen
martin-honnen / a.xml
Created July 21, 2023 14:01
Merge two XML documents with XSLT 3 and nested grouping
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<privapp-permissions package="a">
<permission name="x"/>
<permission name="y"/>
</privapp-permissions>
</permissions>
@martin-honnen
martin-honnen / module1.xsl
Created July 16, 2023 11:14
Stylesheet module resolution for XSLT 3 fiddle using Gist files as input
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="3.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
expand-text="yes">
<xsl:mode on-no-match="shallow-copy"/>
</xsl:stylesheet>
@martin-honnen
martin-honnen / cities-report.html
Created July 13, 2023 09:45
Minimal saxonche sample to transform input XML using XSLT 3.0 to result HTML, taking file names as command line arguments
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Simple group-by example with a composite grouping key from XSLT 3 specification</title>
</head>
<body>
<p>Milano, Italia: 5.26</p>
<p>Padova, Italia: 0.81</p>
<p>Paris, France: 7.4</p>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="3.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
expand-text="yes">
<xsl:param name="collection-uri" as="xs:string" select="'./?select=*.xml'"/>
<xsl:output method="xml" indent="yes"/>
@martin-honnen
martin-honnen / create-random-numbers.xsl
Created July 8, 2023 12:13
XSLT 3.0 sample showing the use of random-number-generator and xsl:iterate to generate a sequence of random numbers
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="3.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
expand-text="yes">
<xsl:param name="count" as="xs:integer" select="25"/>
<xsl:output indent="yes"/>