使用XSLT 1.0将非xml转换为xml或SOAP

时间:2015-08-27 20:43:10

标签: xslt soap

我必须将这样的回复转换为

Data received successfully to XML

到XML或SOAP

此XML输出

<?xml version="1.0" encoding="UTF-8"?>
<response>Data received successfully</response>

或SOAP

两者都可以使用

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Header/>
    <SOAP:Body>
    <response>Data received successfully</response>
</SOAP:Envelope>

我不确定这是否可以通过XSLT完成?

任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

您可以将文本作为参数发送到XSLT样式表,并使用参数中指定的值的内容生成所需的XML输出:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <xsl:param name="message" select="'Data received successfully to XML'"/>

  <xsl:template match="/">
    <response><xsl:value-of select="$message"/></response>
  </xsl:template>

</xsl:stylesheet>

SOAP输出:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <xsl:param name="message"/>

  <xsl:template match="/">
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SOAP:Header/>
      <SOAP:Body>
        <response>
          <xsl:value-of select="$message"/>
        </response>
      </SOAP:Body>
    </SOAP:Envelope>
  </xsl:template>

</xsl:stylesheet>

如果需要格式良好的XML文档,请使用XSLT本身作为输入XML来调用转换。