首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ColdFusion中将XML数组文本项转换为数字?

如何在ColdFusion中将XML数组文本项转换为数字?
EN

Stack Overflow用户
提问于 2021-07-14 06:39:41
回答 1查看 120关注 0票数 5

我在使用函数将XML数据转换为适当的数据类型时遇到问题。我使用XmlParse()读取了一个XML文件。其中有一个数组,我绕着它转。<Cfloop array=#i.Task# index="t">我的理解是,这个数组中的项是XML文本。我可以用CFoutput显示所有的项目,没有问题。数组(BaseLineColor)中的一个项是颜色。然而,#t.BaseLineColor#这个颜色值是一个不同长度的十进制整数。我已经算出了把这个十进制数转换成R,G,B小数的数学公式。目前为止一切都很好。问题是,如果我在BaseLineColor上尝试数学函数,那么我得到:

值?xml version="1.0“encoding="UTF-8"?BaseLineColor 255 /BaseLineColor不能转换为数字。

所以,好的,我尝试过一些方法来尝试将BaseLineColor转换成整数,但是没有任何效果。瓦尔()不工作。事实上,我似乎无法将其转换为任何数据类型。例如,这里我试图使它成为一个字符串-相同的错误:

代码语言:javascript
运行
复制
 <cfscript>
            Strbaselinecolor=toString(t.BaseLineColor);
            rdec=floor(Strbaselinecolor / 65536);
            gdec=floor((Srtbaselinecolor - rdec * 65536)/256);
            bdec=floor(Strbaselinecolor - rdec * 65536 - gdec * 256);
            writeOutput("#t.baselinecolor#: #Strbaselinecolor# red #rdec#, green #gdec#, blue #bdec#")
</cfscript>

我应该使用什么功能?在将其中一些值称为整数之前,我是否应该以某种方式对XML进行预处理?

XML数据中有很多值,它们是数字(一些整数和一些浮点数),所以不仅仅是关于这些颜色的项,而是使用任何非文本的XML数据的一个更普遍的问题。我试图在这方面找到一些参考资料,但到目前为止还没有找到任何相关资料。然而,我猜想在读取XML文件时这是一个常见的问题。

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-07-18 23:29:06

错误信息是正确的。这段代码试图对一些不是数字的东西执行数学运算,尽管它看起来可能是浏览器中的一个.浏览器处理基于标记的代码(如xml )的方式可能会让您措手不及。

此代码(不正确)将t.BaseLineColor的值显示为一个简单的数字255

代码语言:javascript
运行
复制
<cfscript>
    t = xmlParse('<?xml version="1.0" encoding="UTF-8"?><BaseLineColor>255</BaseLineColor>');
    writeOutput(t.BaseLineColor);
</cfscript>

可运行示例

但是,使用浏览器的“检查元素”工具,可以发现该值实际上是一个xml字符串。由于浏览器将<>中包含的任何内容作为html标记处理,而这些标记没有呈现,因此屏幕上只有数字255可见。

writeDump()在这里更有帮助。它将t.BaseLineColor显示为一个xml节点,它的值可以通过xmlText属性访问。

这个简单的值可以用于数学运算。

代码语言:javascript
运行
复制
<cfscript>
    t = xmlParse('<?xml version="1.0" encoding="UTF-8"?><BaseLineColor>255</BaseLineColor>');
    result = t.BaseLineColor.xmlText  / 65536 ;
    writeOutput( result );
</cfscript>

可运行示例

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68373209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档