从XML(而不是字符串)中获取布尔变量
Get boolean variable from XML (not string)
是否可以使用Javascript(或jQuery使示例更容易)从XML中的某个字段获取布尔变量?如果是这样的话,应该如何用XML编写它,以及应该在客户端执行哪些操作?
请检查以下代码:
$(document).ready(function(){
var data = "<?xml version='1.0' encoding='utf-8' ?><data><event id='2'><text><![CDATA[Hello there]]></text><bool1>true</bool1><bool2>false</bool2></event></data>";
var xmlDoc = $.parseXML(data);
var $xml = $(xmlDoc);
var bool = data.find("bool1").text(); // "true" - string
});
我想在这里为"test"字段获取字符串,为"bool1"/"ool2"获取布尔值。
谢谢。
更新:因此,要么必须设置XML方案,要么简单地进行直接比较(==='false'/==='true'),然后将其转换为布尔值。
将读入的文本与字符串"true"进行比较,并将比较结果分配到变量中。
var b = data.find("bool1").text() === 'true';
如果文本节点中有额外的空白,可以使用jQuery来修剪读入的文本:
var b = $.trim(data.find("bool1").text()) === 'true';
如果节点包含文本"true"(可能有一些周围的空白),那么该变量将接收true
的布尔值。如果节点持有字符串"true"以外的ANY值,则变量将接收false
的布尔值。
在jQuery中,您只需将XML字符串包装在jQuery对象中即可解析:
$(document).ready(function(){
var $data = $("<?xml version='1.0' encoding='utf-8' ?><data><event id='2'><text><![CDATA[Hello there]]></text><bool1>true</bool1><bool2>false</bool2></event></data>");
var bool = $data.find("bool1").text(); // "true" - string
});
然后,为了强制变量为布尔值,您可以使用以下条件语句设置其值:
var bool = ($data.find("bool1").text() == 'false') ? false : true;
您可以将文本转换为布尔值,简单如下:
var bool=布尔值($xml.find('pool1').text())
编辑:这总是返回true。您确实需要测试为String。
要在xml中区分字符串和布尔值,可以添加type属性:
<bool1 type='xs:boolean'>false</bool1>
$xml.find('bool1').attr('type') //returns xs:boolean
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jquery试图按名称获取按钮位置
- 如何在jQuery中获取元素的形式
- 如何在php文件中获取$.post-ajax传递的值
- 在Shopify中获取博客文章的图片
- 使用Javascript获取所选选项ID
- 在jQuery中获取表的行索引
- 如何从javascript/jquery中的复选框中获取布尔值
- 使用 jQuery.data 从 dom 元素获取布尔值
- 使用 jQueryUI 从用户那里获取布尔值
- 如何从 asp.net 隐藏字段中设置和获取布尔值
- 从XML(而不是字符串)中获取布尔变量
- ajax从C#函数T4MVC中获取布尔值
- 正在获取数组的布尔结果
- AngularJS如何获取布尔值
- 使用javascript获取php布尔值
- 在JavaScript中从数组中获取布尔值
- 在JavaScript中设置和获取布尔对象属性
- 获取指示哪个路由处于活动状态的布尔值 [角度 2]
- 如何获取对象数组中布尔值的计数(如果为 true)