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

时间:2016-05-27 17:32:50

标签: parsing coldfusion wddx

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

1 个答案:

答案 0 :(得分: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#来获取所需的字符串。