XSLT для получения XML из тела сообщения SOAP - PullRequest
2 голосов
/ 10 ноября 2011

Я пытаюсь понять, как извлечь все, включая теги XML, из тела мыльного сообщения.

Вот что у меня есть:

<?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://soap/envelope/"
    >
    <xsl:output method="xml" indent="no"/>

    <xsl:template match="//soap:Body/*">
    </xsl:template>
</xsl:stylesheet>

1 Ответ

4 голосов
/ 10 ноября 2011

Следующая таблица стилей:

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
    xmlns:m="http://www.example.org/stock">
    <xsl:template match="/">
        <xsl:apply-templates select="soap:Envelope/soap:Body/*"/>
    </xsl:template>
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

Применимо к этому примеру SOAP из Википедии:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <soap:Header></soap:Header>
    <soap:Body>
        <m:GetStockPrice xmlns:m="http://www.example.org/stock">
            <m:StockName>IBM</m:StockName>
        </m:GetStockPrice>
    </soap:Body>
</soap:Envelope>

Выводит содержимое тела SOAP (не включаяbody сам элемент):

<m:GetStockPrice xmlns:m="http://www.example.org/stock" 
                 xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <m:StockName>IBM</m:StockName>
</m:GetStockPrice>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...