většina XSLT procesorů má API
transformace lze spouštět programově
vstup a výstup transformace nemusí být jen soubor, ale klidně DOM strom, proud událostí SAX apod.
některé parsery obsahují i procesor XPath a umožňují vyhodnocování výrazů nad dokumentem – velmi pohodlné pro programátora
// vytvoření XPath navigátoru pro dokument
XPathDocument doc = new XPathDocument("faktura.xml");
XPathNavigator nav = doc.CreateNavigator();
// sečtení faktury přímo pomocí XPath výrazů
double suma = (double) nav.Evaluate("sum(/faktura/polozka/cena)");
System.Console.WriteLine("Celkem Kč: " + suma);
// vytvoření iterátoru pro všechny elementy cena
XPathNodeIterator iter = nav.Select("/faktura/polozka/cena");
// průchod vybranými uzly
while (iter.MoveNext())
{
double sazbaDPH = Double.Parse(iter.Current.GetAttribute("dph","")) / 100;
double castka = Double.Parse(iter.Current.Value);
suma += castka;
sumaDPH += sazbaDPH * castka;
}
// výpis statistiky
System.Console.WriteLine("Celkem Kč: " + suma);
System.Console.WriteLine("Celkem DPH: " + sumaDPH);