0

我是 FreeMarker 语言的新手。我想要做的是创建一个带有肥皂信封的 http 请求,以从第三方服务器获取数据。我对那里的“转义序列”有疑问。

例如,我的 FreeMarker 中有一个变量,例如

<#assign soap_env="<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
        <ns7:ClientInfoHeader soapenv:mustUnderstand="0" xmlns:ns7="urn:messages.ws.rightnow.com/v1.1">
            <ns7:AppID>Run report sample</ns7:AppID>
        </ns7:ClientInfoHeader>
            <wsse:Security mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                <wsse:UsernameToken><wsse:Username>${login}</wsse:Username>
                    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">${Liu@8275?}</wsse:Password>
                </wsse:UsernameToken>
            </wsse:Security>
    </soapenv:Header> <soapenv:Body>
    <ns7:RunAnalyticsReport xmlns:ns7="urn:messages.ws.rightnow.com/v1.1">
        <ns7:AnalyticsReport xsi:type="ns4:AnalyticsReport" xmlns:ns4="urn:objects.ws.rightnow.com/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <ID id="146682" xmlns="urn:base.ws.rightnow.com/v1.1"/>
         </ns7:AnalyticsReport><ns7:Limit>1000</ns7:Limit><ns7:Start>0</ns7:Start>
    </ns7:RunAnalyticsReport> </soapenv:Body> </soapenv:Envelope> ">

我需要将所有报价替换为另一种格式吗?如果是的话,你能给我举个例子吗?

4

2 回答 2

0
 Freemarker Escape sequence        Meaning

  \"                         Quotation mark (u0022)
  \'                         Apostrophe (a.k.a. apostrophe-quote) (u0027)
  \\                         Back slash (u005C)
  \n                         Line feed (u000A)
  \r                         Carriage return (u000D)
  \t                         Horizontal tabulation (a.k.a. tab) (u0009)
  \b                         Backspace (u0008)
  \f                         Form feed (u000C)
  \l                         Less-than sign: <
  \g                         Greater-than sign: >
 \a                          Ampersand: &
\xCode                       Character given with its hexadecimal Unicode code (UCS code)

http://freemarker.org/docs/dgui_template_exp.html

http://freemarker.org/docs/ref_directive_escape.html

于 2013-08-12T13:01:00.197 回答
0

如果你的意思是像<#assign soap_env='<someXml someAttributes="someValue" />'>,正如你在这个例子中看到的那样,你应该使用两个不同的引号('"),这样 FreeMarker 就不会混淆字符串文字的结束位置。或者,您也可以使用转义,例如 in <#assign soap_env="<someXml someAttributes=\"someValue\" />">,但这更难看。

于 2013-08-13T16:41:43.687 回答