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

Big*_*bie 3 coldfusion parsing 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>
Run Code Online (Sandbox Code Playgroud)

我想要使​​用这些数据,但我只需要之间的文字:

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

我使用ColdFusion删除HTML的函数:

#REReplaceNoCase(pkg.title, "<[^><]*>", '', 'ALL')#
Run Code Online (Sandbox Code Playgroud)

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

3 Nights' Lodging3 Noches alojamiento
Run Code Online (Sandbox Code Playgroud)

我想要的只是:

3 Nights' Lodging
Run Code Online (Sandbox Code Playgroud)

Lei*_*igh 6

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

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

<cfwddx action="wddx2cfml" input="#text#" output="result">
<cfdump var="#result#" label="Raw object">
Run Code Online (Sandbox Code Playgroud)

然后使用键#result.en#来获取所需的字符串.