3

我已经接管了这个 ColdFusion 项目,发现我需要一个包含 HTML 的数据库字段中的值。字段数据如下所示(没有新行):

<wddxPacket version="1.0">
    <header />
    <data>
        <struct>
            <var name="en">
                <string>3 Nights' Lodging</string>
            </var>
            <var name="sp">
                <string>3 Noches alojamiento</string>
            </var>
        </struct>
    </data>
</wddxPacket>

我想使用这些数据,但我只需要以下之间的文本:

<var name='en'><string>3 Nights' Lodging</string></var>

我使用了 ColdFusion 必须删除 HTML 的函数:

#REReplaceNoCase(pkg.title, "<[^><]*>", '', 'ALL')#

但是当我使用它时,我会得到这样的东西:

3 Nights' Lodging3 Noches alojamiento

我想要的是:

3 Nights' Lodging
4

1 回答 1

6

检查字符串的开头,即<wddxPacket ...>它实际上是WDDX

如果您搜索 ColdFusion + WDDX,您将找到CFWDDX的文档。它是一个内置标签,支持将 WDDX 字符串转换为 CFML 对象(反之亦然),以便于操作。在您的情况下action="wddx2cfml",用于将字符串转换回 CF 结构。

<cfwddx action="wddx2cfml" input="#text#" output="result">
<cfdump var="#result#" label="Raw object">

然后用钥匙#result.en#抓住你想要的字符串。

于 2016-05-27T17:52:54.820 回答