简体   繁体   English

使用Jquery或javascript进行XML解析

[英]XML parsing with Jquery or javascript

I am new to javascript and I am working on a task to get the count of sets that has "machine", "human", or "software" from the month wise and total in any year based on the dates given in . 我是javascript的新手,我正在研究一项任务,以从每月开始获取具有“机器”,“人”或“软件”的集合的数量,并根据中给出的日期在任何一年中总计。 I would appreciate any help provided. 我将不胜感激。

<?xml version="1.0"?>
<resultset>
<set>
    <type>type1</type>
    <name>Patil</name>
    <date>2015-03-21</date>
    <tag>ThisIsALongText-|tag_machine</tag>
    <c_date>2015-01-12</c_date>
</set>
<set>
    <type>type1</type>
    <name>Patil</name>
    <date>2016-06-11</date>
    <tag>ThisIsALongText-|tag_human</tag>
    <c_date>2013-07-17</c_date>
</set>
<set>
    <type>type1</type>
    <name>Patil</name>
    <date>2016-05-21 </date>
    <tag>ThisIsALongText-|tag_software</tag>
    <c_date>2014-11-12</c_date>
</set>
<set>
    <type>type1</type>
    <name>Patil</name>
    <date>2015-12-10</date>
    <tag>ThisIsALongText-|tag_human</tag>
    <c_date>2015-04-12</c_date>
</set>
<set>
    <type>type1</type>
    <name>Patil</name>
    <date>2015-03-21</date>
    <tag>ThisIsALongText-|tag_machine</tag>
    <c_date>2016-02-23</c_date>
</set>

With the DOMParser API , you can turn XML into DOM element, and therefore you can use getElementById or getElementsByTagName ... methods : 使用DOMParser API ,您可以将XML转换为DOM元素,因此可以使用getElementByIdgetElementsByTagName ...方法:

var parser = new DOMParser();
var doc = parser.parseFromString(yourXML, "text/xml");

EDIT 编辑

var parser = new DOMParser();
var doc = parser.parseFromString('<resultset> <set> <type>type1</type> <name>Patil</name> <date>2015-03-21</date> <tag>ThisIsALongText-|tag_machine</tag> <c_date>2015-01-12</c_date> </set> <set> <type>type1</type> <name>Patil</name> <date>2016-06-11</date> <tag>ThisIsALongText-|tag_human</tag> <c_date>2013-07-17</c_date> </set> <set> <type>type1</type> <name>Patil</name> <date>2016-05-21 </date> <tag>ThisIsALongText-|tag_software</tag> <c_date>2014-11-12</c_date> </set> <set> <type>type1</type> <name>Patil</name> <date>2015-12-10</date> <tag>ThisIsALongText-|tag_human</tag> <c_date>2015-04-12</c_date> </set> <set> <type>type1</type> <name>Patil</name> <date>2015-03-21</date> <tag>ThisIsALongText-|tag_machine</tag> <c_date>2016-02-23</c_date> </set>', "text/xml");
var set = doc.getElementsByTagName('set');
var dates = doc.getElementsByTagName('date');
var date1Month = dates[0].innerHTML.split('-')[1];
var date1Year = dates[0].innerHTML.split('-')[0];

var arrDates = [].map.call(dates, function(element) { return element; });

var allDates = arrDates.map(function(date) { return date.innerHTML });

You can use jQuery to parse XML, there is a $.parseXML function. 您可以使用jQuery解析XML,有一个$.parseXML函数。

Use it like this : 像这样使用它:

var xml = $.parseXML(myXML);
var tags = $(xml).find('tag');

The variable tags will be an array of all your tags. 变量tags将是您所有标签的数组。

More informations here 更多信息在这里

and a demo here 还有一个演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM