我的程序的行为会有所不同,具体取决于是否有一个或多个节点。
RBucket<AnyObject> bucket = redisson.getBucket("anyObject");
// set an object
bucket.set(new AnyObject());
// get an object
AnyObject myObject = bucket.get();
单节点示例
body["Folder"].count
预期输出:1,实际:2 它似乎在文件夹内的节点上执行计数。
多节点示例
<Document>
<Folder>
<name></name>
<placemark></placemark>
</Folder>
</Document>
预期输出:2,实际:2 它计算Folder节点,而不是Folder子节点。 3个文件夹提供3等等。
在单节点示例中,我该如何计算Folder节点而不是它的子节点?
答案 0 :(得分:0)
crack
gem会将相同的标记放在与数组相同的键下。如果你试试这个:
require 'crack'
body = Crack::XML.parse("<Document> <Folder><name></name><placemark></placemark></Folder><Folder><name></name><placemark></placemark></Folder></Document>")
body
将是:
=> "{\"Document\"=>{\"Folder\"=>[{\"name\"=>nil, \"placemark\"=>nil}, {\"name\"=>nil, \"placemark\"=>nil}]}}"
意味着body["Folder"]
是一个包含两个元素的数组(两个'Folder'标记),而count
将会返回2
。
为什么''的数量总是计数的结果。