Я использовал SQlite3 для большого количества проектов (но от C/C++ и Objective C). Это является чрезвычайно маленьким - никакие зависимости вообще - база данных находится в единственном файле.
Это - предпочтительный дб для разработчиков Mac, потому что это непосредственно поддерживается CoreData и на iPhone - таким образом, существует большая база пользователей (не говоря уже обо всех других пользователях).
Вам необходимо определить параметр в вашем XSLT, и вам также необходимо передать XsltArgumentList
в качестве аргумента для вызова Transform
:
private static void CreateHierarchy(string manID)
{
string man_ID = manID;
XsltArgumentList argsList = new XsltArgumentList();
argsList.AddParam("Boss_ID", "", man_ID);
XslCompiledTransform transform = new XslCompiledTransform(true);
transform.Load("htransform.xslt");
using (StreamWriter sw = new StreamWriter("output.xml"))
{
transform.Transform("LU AIB.xml", argsList, sw);
}
}
Обратите внимание, что xsl: param
должен быть определен под элементом xsl: stylesheet
:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:param name="Boss_ID"></xsl:param>
<xsl:template match="OrgDoc">
<!-- template body goes here -->
</xsl:template>
</xsl:stylesheet>
Этот простой пример XSLT создаст небольшой выходной документ, содержащий один узел XML с его содержимым. установите значение вашего параметра. Попробуйте:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:param name="Boss_ID"></xsl:param>
<xsl:template match="/">
<out>
<xsl:value-of select="$Boss_ID" />
</out>
</xsl:template>
</xsl:stylesheet>
вам, вероятно, потребуется определить параметр в верхней части XSLT:
<xsl:param name="Boss_ID" />
<OrgDoc>
//rest of the XSLT
</OrgDoc>
См. Эту ссылку
Не лучший пример, но лучший, который я смог найти с помощью быстрого поиска в Google.