javascript中怎么将xml转为json


当前第2页 返回上一页

接下来就是重点的部分了,通过遍历和递归获取子元素的nodeValue,来拼接出JSON字符串,实现将XML转换成JSON字符串:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

/**

 * 将XML的Document对象转换为JSON字符串

 * @param xmlDoc xml的Document对象

 * @return string

 */

function convertToJSON(xmlDoc) {

    //准备JSON字符串和缓存(提升性能)

    var jsonStr = "";

    var buffer = new Array();

 

    buffer.push("{");

    //获取xml文档的所有子节点

    var nodeList = xmlDoc.childNodes;

 

    generate(nodeList);

 

    /**

     * 中间函数,用于递归解析xml文档对象,并附加到json字符串中

     * @param node_list xml文档的的nodeList

     */

    function generate(node_list) {

 

        for (var i = 0; i < node_list.length; i++) {

            var curr_node = node_list[i];

            //忽略子节点中的换行和空格

            if (curr_node.nodeType == 3) {

                continue;

            }

            //如果子节点还包括子节点,则继续进行遍历

            if (curr_node.childNodes.length > 1) {

                buffer.push("\"" + curr_node.nodeName + "\": {");

                generate(curr_node.childNodes);

            } else {

                var firstChild = curr_node.childNodes[0];

 

                if (firstChild != null) {

                    //nodeValue不为null

                    buffer.push("\"" + curr_node.nodeName + "\":\"" + firstChild.nodeValue + "\"");

                } else {

                    //nodeValue为null

                    buffer.push("\"" + curr_node.nodeName + "\":\"\"");

                }

 

            }

            if (i < (node_list.length - 2)) {

                buffer.push(",");

            } else {

                break;

            }

        }

        //添加末尾的"}"

        buffer.push("}");

    }

 

    jsonStr = buffer.join("");

    return jsonStr;

}

使用方式:通过getXmLDocumentByFilePath(xmlFilePath)或者getXmlDocumentByXmlString(xmlString)获取XML的Document对象,然后通过调用convertToJSON(xmlDocument)传入xml的Ducument对象即可得到转换后的JSON字符串。

适用范围:不含有attribute的任意XML文档。

更多编程相关知识,请访问:编程视频!!

以上就是javascript中怎么将xml转为json的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

javascript如何实现弹出层效果?(代码分析)

javascript中的对象分为哪几类

认识javascript是如何工作的,深入v8引擎和编写优化代码

javascript诞生于哪年

javascript中for in语句怎么用

javascript中如何使用spread运算符(...)?8种方法介绍

js如何获取session中的值

date对象常用的封装方法及遇到的问题解决

javascript dom方法有哪些

javascript的代码简洁技巧

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...