相关疑难解决方法(0)

通过.NET将参数传递给XSLT样式表

我正在尝试将参数传递给XSLT样式表,但是当使用XSlCompiledTransform转换文档时,我得到的是一个空的xml文档.

这是用于添加参数的C#方法(在添加人们的建议之后)

private static void CreateHierarchy(string manID)
    {

        string man_ID = manID;

        XsltArgumentList argsList = new XsltArgumentList();
        argsList.AddParam("Boss_ID","",man_ID);

        XslCompiledTransform transform = new XslCompiledTransform();
        transform.Load("htransform.xslt");

        using (StreamWriter sw = new StreamWriter("output.xml"))
        {
            transform.Transform("LU AIB.xml", argsList, sw);
        } 


    }
Run Code Online (Sandbox Code Playgroud)

这是样式表.我传入的参数是'Boss_ID'

   <?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:template match="OrgDoc">
     <xsl:param name="Boss_ID"></xsl:param>
    <xsl:processing-instruction name="xml-stylesheet">
    <xsl:text>type="text/xsl" href="..\styles\orgcharts.xsl" </xsl:text>
  </xsl:processing-instruction>
    <OrgDoc>
      <xsl:for-each select="PosDets[@OC_Man = $Boss_ID]">
      <PosDets OC_Pos="{@OC_Pos}" OC_Sub="{@OC_Sub}" OC_Man="{@OC_Man}" OC_Ttl="{@OC_Ttl}" OC_Rnk="{@OC_Rnk}" OC_Bdg="{@OC_Bdg}" OC_Fnd="{@OC_Fnd}"   OC_OL3="{@OC_OL3}"    OC_Tmp="{@OC_Tmp}">
          <xsl:apply-templates select="../PosDets">
            <xsl:with-param name="mgrid" select="@OC_Pos"/>
          </xsl:apply-templates>
        </PosDets> …
Run Code Online (Sandbox Code Playgroud)

.net c# xml xslt xslcompiledtransform

30
推荐指数
2
解决办法
4万
查看次数

标签 统计

.net ×1

c# ×1

xml ×1

xslcompiledtransform ×1

xslt ×1