这些天我越来越多地深入研究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!