解析 HTML 在 ColdFusion 的数据库中存储为字符串

Parse HTML stored as string in Database in ColdFusion

我接手了这个 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

检查字符串的开头,即<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#键来抓取你想要的字符串