从xml响应提取对象数组js

从xml响应提取对象数组js

问题描述:

所以我从我的xml响应中提取变量并尝试重新格式化对象,但我想尽可能以最有效的方式进行操作。所以我想将相同对象的xml数组加载到一个js数组中,我可以循环并输出新格式。在提取XPath时,我找到了对type =“nodeset”的引用,但我无法在文档中找到对它的引用。从xml响应提取对象数组js

什么是完整的XML对象加载到一个js变量和循环直通对象和输出的新格式

感谢您的帮助的最佳方式,你可以给我这个。

完成此操作的最佳方法是使用XMLToJSON策略,您可以在其中调解有效内容的JavaScript标注,然后在需要时使用JSONToXML进行转换。

+0

我找到了response.content.asXML;我可以使用js来加载结构并访问里面的对象。仍然需要弄清楚如何在同一个标​​记的所有对象上执行循环。 – aguilarsoto 2014-08-28 03:38:41

+0

为此,如果数据一致,可以实际使用xpath。否则,将其解析为JavaScript对象仍然是最简单的(也可能接近高性能)路线。 – brandonscript 2014-08-28 07:09:21

对于不需要过滤的XML数组,您可以使用XPATH与type="nodeset",就像您所描述的那样。这使您可以在特定的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并处理来自那里的数据。

+0

感谢JS的字符串转换引用。这真的很有帮助 – aguilarsoto 2014-08-31 20:14:33

+0

没问题 - 很乐意帮忙。 – akoo1010 2014-08-31 21:54:43

+0

周期I最后使用计数器和一段时间 var i = 0; while(folder = folders.folder [i]){ i ++; r.folders.push(reformatFolder(folder)); } – aguilarsoto 2014-09-02 17:43:15