You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供基于输入Payload生成响应的XSLT实现方案

使用XSLT处理传入的Payload生成响应

先把你提供的传入Payload片段整理出来:

<Request>
  <PrRequest>
    <RequestWork>
      <QAList>
        <AnswerID>String</AnswerID>
        <QuestionId>066Q</QuestionId>
        <QuestionText>Reason for Visiting </QuestionText>
        <VersionNumber>V1</VersionNumber>
        <Answers>
          <AnswerText>Rogane X</AnswerText>
          <AnswerText>Rogane Y</AnswerText>
        </Answers>
      </QAList>
      <QAList>
        <!-- 未完整提供的内容 -->
      </QAList>
    </RequestWork>
  </PrRequest>
</Request>

针对这个结构,我写了一段XSLT代码,能帮你提取每个问答组的信息并生成结构化的响应输出:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- 匹配根节点,启动转换流程 -->
  <xsl:template match="/">
    <Response>
      <xsl:apply-templates select="Request/PrRequest/RequestWork/QAList"/>
    </Response>
  </xsl:template>

  <!-- 处理单个QAList节点,生成问答条目 -->
  <xsl:template match="QAList">
    <QAEntry>
      <QuestionContent>
        <xsl:value-of select="QuestionText"/>
      </QuestionContent>
      <QuestionIdentifier>
        <xsl:value-of select="QuestionId"/>
      </QuestionIdentifier>
      <AvailableAnswers>
        <!-- 遍历所有答案选项并输出 -->
        <xsl:for-each select="Answers/AnswerText">
          <AnswerOption>
            <xsl:value-of select="."/>
          </AnswerOption>
        </xsl:for-each>
      </AvailableAnswers>
    </QAEntry>
  </xsl:template>
</xsl:stylesheet>

代码说明:

  • 根模板匹配文档根节点,先创建<Response>作为输出的根容器,然后自动遍历所有QAList节点进行处理
  • 每个QAList模板会生成一个<QAEntry>条目,把问题文本、问题ID和所有答案选项都整理成清晰的结构
  • 用<xsl:for-each>循环处理Answers下的每个AnswerText,确保所有答案都能被提取出来

如果未完整提供的第二个QAList结构和第一个一致,这段代码会自动处理它。转换后的输出大概是这样的:

<Response>
  <QAEntry>
    <QuestionContent>Reason for Visiting </QuestionContent>
    <QuestionIdentifier>066Q</QuestionIdentifier>
    <AvailableAnswers>
      <AnswerOption>Rogane X</AnswerOption>
      <AnswerOption>Rogane Y</AnswerOption>
    </AvailableAnswers>
  </QAEntry>
  <!-- 第二个QAList对应的QAEntry会自动生成在这里 -->
</Response>

要是你需要调整输出的节点名称、添加更多字段(比如VersionNumber),直接修改XSLT里的模板内容就行,灵活性很高。

内容的提问来源于stack exchange,提问作者user3347963

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:18:52