所以我从我的xml响应中提取变量并尝试重新格式化对象,但我想以最有效的方式做到这一点。所以我想将相同对象的xml数组加载到js数组中,我可以循环并输出新格式。我在提取XPath时找到了对type =“nodeset”的引用,但我在文档中找不到对它的引用。
将完整的xml对象加载到js变量并循环访问对象并输出新格式的最佳方法是什么
感谢您提供任何帮助。
答案 0 :(得分:0)
实现这一目标的最佳方法是使用XMLToJSON策略,一个JavaScript调用,您可以在其中调解您的有效负载,然后在需要时使用JSONToXML进行转换。
答案 1 :(得分:0)
对于不需要过滤的XML数组,您可以将XPATH与type="nodeset"
一起使用,就像您所描述的那样。这允许您拉取特定XPATH中的节点和所有子节点。我确定你注意到了,你只能通过提取type="string"
来做到这一点。只需知道您需要将提取的变量转换为字符串,然后才能像使用其他字符串一样使用XML节点。然后,您可以执行JSON.parse
来获取字符串并像数组一样操纵对象。字符串转换就像使用以下代码调用JS callout一样简单(如果其他人有更好的方法,我全都耳朵):
var extractedNodeSet = context.getVariable("extractedNodeSet");
var extractedNodeSetString = String(extractedNodeSet);
对于需要过滤/操作的XML数组,我建议使用XSLT和受信任的<xsl:for-each select=...>
元素。这将让您在一个步骤中设置XML阵列节点的条件,操纵标签/数据,并提取数据。唯一的问题是这不是一个JS数组,所以如果你绝对必须有一个JS数组,那么你需要做一个XMLtoJSON并使用那里的数据。