Я использую C# для преобразования документа XML и он работает отлично:Добавьте код XSLT до преобразования
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class XmlTransformUtil
{
public static void Main(string[] args)
{
if (args.Length == 2)
{
Transform(args[0], args[1]);
}
else
{
PrintUsage();
}
}
public static void Transform(string sXmlPath, string sXslPath)
{
try
{
//load the Xml doc
XPathDocument myXPathDoc = new XPathDocument(sXmlPath);
XslTransform myXslTrans = new XslTransform();
//load the Xsl
myXslTrans.Load(sXslPath);
//create the output stream
XmlTextWriter myWriter = new XmlTextWriter
("result.html", null);
//do the actual transform of Xml
myXslTrans.Transform(myXPathDoc, null, myWriter);
myWriter.Close();
}
catch (Exception e)
{
Console.WriteLine("Exception: {0}", e.ToString());
}
}
public static void PrintUsage()
{
Console.WriteLine
("Usage: XmlTransformUtil.exe <xml path> <xsl path>");
}
}
Приведенный выше код работает отлично, однако, что я хочу сделать, это, прежде чем XSLT является Я хочу, чтобы он добавил дополнительные строки кода в определенные части XSLT.
XSLT Код:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html lang="en-GB">
<body style="font-family:'Praxis Com Light'; color:#632423; width:100%; font-size:14px !important;">
//MAIN BODY OF CODE
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Как я хочу, чтобы код XSLT изменился в C# Перед преобразованием:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="HEAD.xslt"/>
<xsl:include href="FOOT.xslt"/>
<xsl:template match="/">
<html lang="en-GB">
<body style="font-family:'Praxis Com Light'; color:#632423; width:100%; font-size:14px !important;">
<xsl:call-template name="Header"/>
//MAIN BODY OF CODE
<xsl:call-template name="Footer"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Как это можно сделать?
Посмотрите вместо того, чтобы передавать в параметры преобразование и отключайте его. Пример - http://stackoverflow.com/questions/1521064/passing-parameters-to-xslt-stylesheet-via-net – OldProgrammer
Не знаете, в чем заключается трудность. Таблица стилей XSLT - это XML-документ, у вас есть инструмент (XSLT) для преобразования XML-документов, поэтому просто сделайте это. Является ли преобразование таблицы стилей правильной стратегией здесь, я не знаю (это мощный метод, но иногда есть другие способы, которые лучше), но внутренне, если вы хотите использовать XSLT для преобразования XSLT, это не проблема. –