因此,我从xml响应中提取变量,并尝试重新格式化对象,但我希望以最有效的方式完成此操作。因此,我希望将包含相同对象的xml数组加载到js数组中,以便循环并输出新格式。在提取XPath时,我发现了对type="nodeset“的引用,但在文档中找不到对它的引用。
将完整的xml对象加载到js变量中、遍历对象并输出新格式的最佳方式是什么?
感谢你在这方面给我的任何帮助。
发布于 2014-08-28 02:45:08
实现这一点的最好方法是使用XMLToJSON策略,这是一个JavaScript标注,您可以在其中协调您的有效负载,然后在需要时使用JSONToXML进行转换。
发布于 2014-08-29 00:20:46
对于不需要过滤的XML数组,可以使用带有type="nodeset"的XPATH,就像前面描述的那样。这允许您提取特定XPATH中的节点和所有子节点。我相信你已经注意到了,你不能仅仅通过提取type="string"来做到这一点。只需知道,您需要将提取的变量转换为字符串,然后才能像使用其他字符串一样使用XML节点。然后,您可以执行JSON.parse来获取字符串,并像处理数组一样操作对象。字符串转换很简单,只需使用以下代码调用JS标注(如果其他人有更好的方法,我洗耳恭听):
var extractedNodeSet = context.getVariable("extractedNodeSet");
var extractedNodeSetString = String(extractedNodeSet);对于需要过滤/操作的XML数组,我建议结合使用XSLT和受信任的<xsl:for-each select=...>元素。这将允许您在XML数组节点上设置条件,操作标记/数据,并提取数据,所有这些都在一个步骤中完成。唯一需要注意的是,这不是一个JS数组,所以如果您一定要有一个JS数组,那么您就需要执行一个XMLtoJSON并处理其中的数据。
https://stackoverflow.com/questions/25534036
复制相似问题