xmlparsetesting

by Darksbane

HTML

<span id= "myspan"></span>
<textarea id="mytextarea"><?xml version="1.0" encoding="utf-8" standalone="yes"?>
<deck game="a12af4e8-be4b-4cda-a6b6-534f9717391f">
    <section name="House">
        <card qty="1" id="a12af4e8-be4b-4cda-a6b6-534f97001006">House Targaryen</card>
    </section>
    <section name="Agenda">
        <card qty="1" id="a12af4e8-be4b-4cda-a6b6-534f97008060">Knights of the Hollow Hill</card>
    </section>
    <section name="Characters">
        <card qty="3" id="ba96d075-e916-4194-9f27-63b1b9ab3016">Magister Illyrio</card>
        <card qty="3" id="a12af4e8-be4b-4cda-a6b6-534f97338089">Dragon Knight</card>
        <card qty="2" id="a12af4e8-be4b-4cda-a6b6-534f97008616">Killer of the Wounded</card>
        <card qty="2" id="a12af4e8-be4b-4cda-a6b6-534f97002037">Dragon Thief</card>
        <card qty="2" id="a12af4e8-be4b-4cda-a6b6-534f97001108">Khal Drogo</card>
        <card qty="3" id="ba96d075-e916-4194-9f27-63b1b9ab3096">Long Lances</card>
        <card qty="2" id="4c40a080-f988-4112-99bb-3ec446024109">Shadow Parasite</card>
        <card qty="3" id="a12af4e8-be4b-4cda-a6b6-534f97004090">King's Landing Assassin</card>
        <card qty="2" id="a12af4e8-be4b-4cda-a6b6-534f97338110">Sorrowful Man</card>
        <card qty="1" id="ba96d075-e916-4194-9f27-63b1b9ab3033">Young Griff</card>
        <card qty="1" id="ba96d075-e916-4194-9f27-63b1b9ab3115">The Brazen Beasts</card>
        <card qty="2" id="a12af4e8-be4b-4cda-a6b6-534f97338010">Ser Barristan Selmy</card>
        <card qty="2" id="a12af4e8-be4b-4cda-a6b6-534f97004077">Syrio Forel</card>
        <card qty="1" id="a12af4e8-be4b-4cda-a6b6-534f97338056">Lyanna Stark</card>
    </section>
    <section name="Locations">
        <card qty="3" id="a12af4e8-be4b-4cda-a6b6-534f97001127">Eastern Fiefdoms</card>
        <card qty="3" id="a12af4e8-be4b-4cda-a6b6-534f97004099">King's Landing</card>
        <card qty="2" id="a12af4e8-be4b-4cda-a6b6-534f97004074">The Dragonpit</card>
        <card...

JavaScript

$('#mybutton').click(function(){
    var isXML = true;
    try{
    xmlDoc = $.parseXML( $('#mytextarea').val() );
    
    }
    catch (err){
     console.log("error",typeof err);   
        if (err.message.match(/Invalid XML:/g)){
               $('#myspan').text('Invalid XML');
                isXML = false;
            }
    }
    if (isXML){
        $xml = $( xmlDoc );
        $xml.find("section").each(function()
          {
            $("#output").append($(this).attr("name") + "<br />");
              $(this).find("card").each(function(){
                  $("#output").append($(this).text()+" x"+$(this).attr("qty")+"<br />");
              });
    
          });
    } else {
        var lines = [];
        $.each($('#mytextarea').val().split(/\n/), function(i, line){
           if(line && line.length){
              lines.push(line);
               if(line.match(/\[url\="?(.*?)"?\](.*?)\[\/url\]/gi)){
                    $("#output").append(line);
               }
           }
        });
        console.log(lines);
    }
});