我正在为除XML之外的数据类型(如json或avro)寻找var tagId = req.params.tagid;
console.log(tagId); //1234
console.log(req.params.tagid); //1234
的实现。这将允许我重用针对org.w3c.dom.Node
编写的功能,例如xpath。
org.w3c.dom.Node
org.w3c.dom.Node document = new JsonDocument(myJsonMessage);
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
String msg = xpath.evaluate("/document/element", document);
是针对json文档的xpath评估,前提是我为Json实现了msg
/ Node
。
答案 0 :(得分:0)
最简单的解决方案可能是将您的JSON文档转换为XML,然后使用现有功能执行xpath查询。
答案 1 :(得分:0)
org.w3c.dom.Node是一个接口。我最终为json,avro,bson(mongodb)编写了接口的实现。它工作得很好。通过执行此操作,我们可以对json,avro,bson等使用xpath,xslt。
您唯一需要记住的是某些文档类型比其他文档类型“更丰富”。 xml具有节点的值,而其他大多数格式则没有。
例如:
<MyDocument>
<MyChild1>Child1Value</MyChild1>
<MyChild2>Child2Value</MyChild2>
<MyChild3 attribute1="Child3 attribute1" attribute2="Child3 attribute2"></MyChild3>
</MyDocument>
要在json中表示同一文档,您需要引入一个约定。在下面的示例中,约定是对节点值使用键“ _rootValue”:
{
"MyDocument": {
"MyChild1": {
"_rootValue": "Child1Value"
},
"MyChild2": {
"_rootValue": "Child2Value"
},
"MyChild3": {
"attribute1": "Child3 attribute1",
"attribute2": "Child3 attribute2"
},
}
}