我试图为http请求添加缓存功能(对于我的一个项目),我想使用Etag作为哈希值。但是如果Etag不在那里我想到使用有效载荷来生成唯一的哈希值。众所周知,相同的xml工资负载可能有不同的结构。例如 样本A和样本B相同 。但他们的字符串结构并不相同。我需要的是一种从两个xml样本生成相同哈希键的方法。
示例A
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
样本B
<note>
<to>Tove</to>
<heading>Reminder</heading>
<from>Jani</from>
<body>Don't forget me this weekend!</body>
</note>
答案 0 :(得分:1)
order = '[{"item": 5, "quantity": 2},{"item": 6, "quantity": 1}]'
def doSomething():
import json
ord = json.loads(order)
values =[ v['item'] for v in ord] # if u want a single item u put values = v.pop()['item']
文档不会改变子元素的顺序。
你可以通过递归解析文档来做到这一点。但是,请考虑这是否比您首先尝试缓存的操作更昂贵......
方法
org.w3c.dom.document.normalizeDocument()
实现,即ArrayList。这是必需的,因为org.w3c.dom.NodeList不允许修改java.util.List
请注意,这不涉及具有不同内容的同名的多个元素,但确实解决了您的示例
例如:
Collections.sort()