2014-11-22 159 views
0

我想解析完整的HTML儿童及其子女,其中我不会有任何属性ID放置标记。如何获得HTML儿童

对于如:

<html> 
<head> 
    <script> 
    function blah(){ 
     alert("hi"); 
    } 
    </script> 
    <style> 
    body{ 
     font:10px; 
    } 
    </style> 
</head> 
<body> 
    <h1> My Header </h1> 
    <div class="container"> 
     <div class="colone">Hai22</div> 
     <div class="coltwo">Hai44</div> 
    </div> 
</body> 
</html> 

现在我想分析整个HTML和获得它的孩子们一个个并将其转换成JSON字符串。 像

{ 
    "html":{ 
     "head":{ 
       "script": 
      . 
      . 
      . 
      . 
      . 
      . 
      . 
} 
+0

重复的问题:http://stackoverflow.com/questions/2303713/how-to-serialize-dom-node-to-json – Kolban 2014-11-22 16:25:19

+2

为什么你想转换成json ..任何理由? – Girish 2014-11-22 16:26:15

回答

0

这是不可能的,因为HTML(或类似XML)树有给Javascript/JSON对象模型不同的限制。具体而言,每个“孩子”标签在父代中必须是唯一的。这是无效的JSON:

"section": { 
    "div": { ... }, 
    "div": { ... }, 
    "div": { ... } 
} 

您不能有一个名为"div"的对象的三个属性。最后,你必须存储对象列表,如:

{ 
    "tagname": "section", 
    "children": [ 
     { "tagname": "div", 
      "children": ... } 
    ... 
    ] 
} 

一旦你到达那一点,转换几乎没有意义。以您最喜欢的编程语言使用标准的DOM解析库。

+0

感谢您的答复@汤姆,我会追加div id到json中的键值...我需要通过javascript jquery转换...这可能吗? – pathfinder 2014-11-23 09:34:49