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)
检查字符串的开头,即<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#
来获取所需的字符串.