使用XSLT从SOAP消息中选择节点值

Bpowar

我正在尝试从SOAP消息中获取值。我需要检索用户名和密码。

SOAP消息如下所示:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header></soap:Header>
  <soap:Body>    
     <GetData xmlns="http://webservicedata.com/">   
      <oXmlElement>
        <message>
          <header>
            <username>[email protected]</username>
            <password>Test password</password>
          </header>
        </message>
      </oXmlElement>
    </GetData>    
  </soap:Body>
</soap:Envelope>

这是我的XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:soap="http://www.w3.org/2003/05/soap-envelope" exclude-result-prefixes="soap msxsl">
  <xsl:output method="xml" indent="yes"/>
  <xsl:template match="/">
    <NewDataSet>
      <Header>           
        <username>
          <xsl:value-of select="soap:Envelope/soap:Body/GetData/oXmlElement/message/header/username"/>
        </username>
        <password>
          <xsl:value-of select="soap:Envelope/soap:Body/GetDate/oXmlElement/message/header/password"/>
        </password>
      </Header>
    </NewDataSet>
  </xsl:template>
</xsl:stylesheet>

以下是我删除后可以正常工作的预期结果 <GetData xmlns="http://webservicedata.com/">

<?xml version="1.0" encoding="UTF-8"?>
<NewDataSet>
   <Header>
      <Portfolio />
      <username>[email protected]</username>
      <password>testpassword</password>
   </Header>
</NewDataSet>
伊恩·罗伯茨

xmlns="http://webservicedata.com/"GetData放的是和它的所有前缀的子元素到一个命名空间,所以你必须映射该命名空间的前缀,在你的样式表,并在你的XPath表达式使用前缀- XPath 1.0中没有前缀的名字总是指的元素没有命名空间。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt"
    xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsd="http://webservicedata.com/"
    exclude-result-prefixes="soap msxsl wsd">
  <xsl:output method="xml" indent="yes"/>
  <xsl:template match="/">
    <NewDataSet>
      <Header>           
        <username>
          <xsl:value-of select="soap:Envelope/soap:Body/wsd:GetData/wsd:oXmlElement/wsd:message/wsd:header/wsd:username"/>
        </username>
        <!-- similar for password -->
      </Header>
    </NewDataSet>
  </xsl:template>
</xsl:stylesheet>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用xslt 1.0从xml中选择不同的节点和总数

来自分类Dev

在 XSLT 中选择节点的各个位置

来自分类Dev

如何使用SQL从以下XML中选择节点值?

来自分类Dev

从使用命名空间的 XML 中选择节点/值

来自分类Dev

使用 sql 从表中选择最新的消息线程值

来自分类Dev

如何在xslt中选择一个节点的最大值?

来自分类Dev

如何使用表达式在XSLT 1.0中选择唯一节点?

来自分类Dev

从 XSLT 子查询中选择不同的值

来自分类Dev

使用XSLT乘以节点值

来自分类Dev

XSLT-根据地图从模板中选择节点

来自分类Dev

XSLT帮助,帮助您从XML中选择最新的操作节点

来自分类Dev

难以编写XPATH以在XSLT中选择适当的节点

来自分类Dev

在xslt中选择使用参数值

来自分类Dev

使用XPath在Python中选择Next节点

来自分类Dev

使用python 2.7和XML元素树在XML中选择具有特定元素值的节点

来自分类Dev

使用SimpleXML根据同级值在PHP中选择文本节点

来自分类Dev

如何使用XSLT选择或删除节点xml

来自分类Dev

XSLT 如何使用 xsl:for-each 和 xsl:if 选择节点属性值

来自分类Dev

SOAP XML 选择节点

来自分类Dev

xslt从嵌套循环中选择匹配的值

来自分类Dev

我无法从命名空间的XML中选择节点值

来自分类Dev

Newtonsoft JArray-从节点指定的数组中选择多个值

来自分类Dev

使用xslt筛选特定节点值

来自分类Dev

使用XSLT转换XML节点值

来自分类Dev

使用XSLT合并来自不同节点的值

来自分类Dev

XSLT:当需要其他变量时,如何从文档片段中选择节点和/或将递归应用于选择节点?

来自分类Dev

根据节点值使用xslt从xml中删除节点

来自分类Dev

使用XSLT XPATH根据内部节点值获取外部节点

来自分类Dev

使用 BeautifulSoup 从表中选择特定值

Related 相关文章

热门标签

归档