结合XSLT&带结构的msxsl

时间:2013-07-17 14:47:59

标签: c# xslt struct msxsl

这些天我越来越多地深入研究XSLT,但这个问题让我在过去的几个小时里摸不着头脑。

我有以下XSLT脚本,它在服务器环境中用于接收和帮助处理SOAP信封的一部分。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:test="" exclude-result-prefixes="msxsl test">
<xsl:output method="xml" omit-xml-declaration="yes" indent="no"/>

    <msxsl:script implements-prefix="test" language="C#">
    public Param GetParam()
    {
        // Code here
    }
    </msxsl:script>

    <xsl:template match="/">

    <xsl:choose>

        <xsl:comment>Used by IT_E items</xsl:comment>

        <xsl:when test="helloworld">
            <xsl:text>helloworld|clientdata|username|</xsl:text>
            <xsl:value-of select="helloworld/clientdata/username"/>
            <xsl:text>$helloworld|clientdata|password|</xsl:text>
            <xsl:value-of select="helloworld/clientdata/password"/>
        </xsl:when>

是的,只是其中的一部分。完全发布将是太漫长和无聊。现在,正如您所看到的,我已经准备好了一个msxsl块,但是我不知道如何继续。

简而言之,我想要实现的是获得当前的输出:

helloworld|clientdata|username|myvalue$helloworld|clientdata|password|myvalue

然后进一步处理,全部在XSLT脚本中完成。基本上我会拆分$字符,然后对于数组中的每个项目,拆分为|并填写结构:

Param(string cmd, string class, string var, string val);

如何返回Param对象(我的自定义C#结构)而不是纯文本?有什么提示让我走向正确的方向吗?

此外,自定义前缀如何工作?我可以在声明中将URL留空吗?


更新

这是我在从另外两个脚本处理后从SOAP信封中留下的XML,它从中删除了所有SOAP元素。

<helloworld>
<clientdata>
    <username>test</username>
    <password>test</password>
<clientdata>

我应该从一开始就包括这个,我的appologies!

0 个答案:

没有答案