• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Parsowanie pliku XML - JavaScript

VPS Starter Arubacloud
0 głosów
1,046 wizyt
pytanie zadane 27 października 2016 w JavaScript przez Newperty Początkujący (280 p.)

Witam. W ramach samorozwoju pracuję nad projektem planu lekcji. Wszystko idzie fajnie tylko napotykam problem przy parsowaniu XML do tabeli frown, a właściwie w ogóle przy parsowaniu frown

<!DOCTYPE>
<HTML>
  <HEAD>
    <TITLE>
      Odczytywanie wartości atrybutów z dokumentu XML
    </TITLE>

    <XML ID="meetingsXML" SRC="ascIksemel.xml"></XML>


    <SCRIPT LANGUAGE="JavaScript">
       function readXMLDocument()
       {
        var xmldoc, timetableNode, periodsNode, periodNode
        var attributes, periodAttribute, starttimeAttribute, endtimeAttribute
        var outputText

        xmldoc = document.all("meetingsXML").XMLDocument
        
        timetableNode = xmldoc.documentElement 
        periodsNode = timetableNode.firstChild
        periodNode = periodsNode.firstChild

        attributes = periodNode.attributes
        periodAttribute = attributes.GetNamedItem("period")
        starttimeAttribute = attributes.GetNamedItem("starttime")
        endtimeAttribute = attributes.GetNamedItem("endtime")


        outputText = "Dziala: " + '' +
              periodAttribute.value //+
              "-" + starttimeAttribute.value +
              "-" + endtimeAttribute.value

        messageDIV.innerHTML = outputText
        }
      </SCRIPT>

  </HEAD>
  <BODY>
    <CENTER>
        <H1>Odczyt elementow</H1>

          <INPUT TYPE="BUTTON" VALUE="wyswietl"
           ONCLICK="readXMLDocument()">
          <DIV ID="messageDIV"></DIV>
    </CENTER>
  </BODY>
</HTML>
<?xml version="1.0" encoding="windows-1250"?>
<timetable ascttversion="2016.17.1" importtype="database" options="export:idprefix:%CHRID,import:idprefix:%TEMPID,groupstype1,decimalseparatordot,lessonsincludeclasseswithoutstudents,handlestudentsafterlessons" defaultexport="1" displayname="aSc Timetables 2012 XML" displaycountries="">
   <periods options="canadd,export:silent" columns="period,name,short,starttime,endtime">
      <period name="0" short="0" period="0" starttime="6:55" endtime="7:40"/>
      <period name="1" short="1" period="1" starttime="7:45" endtime="8:30"/>
      <period name="2" short="2" period="2" starttime="8:40" endtime="9:25"/>
      <period name="3" short="3" period="3" starttime="9:35" endtime="10:20"/>
      <period name="4" short="4" period="4" starttime="10:30" endtime="11:15"/>
      <period name="5" short="5" period="5" starttime="11:30" endtime="12:15"/>
      <period name="6" short="6" period="6" starttime="12:25" endtime="13:10"/>
      <period name="7" short="7" period="7" starttime="13:20" endtime="14:05"/>
      <period name="8" short="8" period="8" starttime="14:15" endtime="15:00"/>
      <period name="9" short="9" period="9" starttime="15:05" endtime="15:50"/>
   </periods>
   <daysdefs options="canadd,export:silent" columns="id,days,name,short">
      <daysdef id="BD533C43ECD6A0C8" name="Dowolny dzie�" short="X" days="10000,01000,00100,00010,00001"/>
      <daysdef id="C3BE3F39F158E3B3" name="Ka�dy dzie�" short="E" days="11111"/>
      <daysdef id="A87EE794689C623F" name="Poniedzia�ek" short="Po" days="10000"/>
      <daysdef id="B8BE35E5B6647C97" name="Wtorek" short="Wt" days="01000"/>
      <daysdef id="53A9A335A5AD2FC5" name="�roda" short="�r" days="00100"/>
      <daysdef id="89A1FF497F3708A0" name="Czwartek" short="Cz" days="00010"/>
      <daysdef id="453F5EDF3F8855A8" name="Pi�tek" short="Pi" days="00001"/>
   </daysdefs>
  </timetable>

A tutaj kod ze strony na której się wzorowałem wink (to samo wrzucam niżej)
 

<?xml version="1.0" encoding="iso-8859-2"?>
<SPOTKANIA>
  <SPOTKANIE TYP="nieformalne">
    <TYTUŁ>XML w praktycznych zastosowaniach</TYTUŁ>
    <NUMER>2079</NUMER>
    <TEMAT>XML</TEMAT>
    <DATA>6/1/2002</DATA>
    <OSOBY>
      <OSOBA STATUS="obecna">
        <IMIE>Edward</IMIE>
        <NAZWISKO>Samson</NAZWISKO>
      </OSOBA>
      <OSOBA STATUS="nieobecna">
        <IMIE>Ernestyna</IMIE>
        <NAZWISKO>Johnson</NAZWISKO>
      </OSOBA>
      <OSOBA STATUS="obecna">
        <IMIE>Betty</IMIE>
        <NAZWISKO>Richardson</NAZWISKO>
      </OSOBA>
    </OSOBY>
  </SPOTKANIE>
</SPOTKANIA>
<HTML>
  <HEAD>
    <TITLE>
      Odczytywanie wartości atrybutów z dokumentu XML
    </TITLE>
 
    <XML ID="meetingsXML" SRC="spotkania.xml"></XML>
 
    <SCRIPT LANGUAGE="JavaScript">
       function readXMLDocument()
       {
        var xmldoc, meetingsNode, meetingNode, peopleNode
        var personNode, first_nameNode, last_nameNode, outputText
        var attributes, attendancePerson
 
        xmldoc = document.all("meetingsXML").XMLDocument
 
        meetingsNode = meetingsXML.documentElement
        meetingNode = meetingsNode.firstChild
        peopleNode = meetingNode.lastChild
        personNode = peopleNode.lastChild
        first_nameNode = personNode.firstChild
        last_nameNode = first_nameNode.nextSibling
        attributes = personNode.attributes
        attendancePerson = attributes.getNamedItem("STATUS")
        outputText = "Trzecia osoba: " +
                     first_nameNode.firstChild.nodeValue + ' ' +
                     last_nameNode.firstChild.nodeValue +
                     " - " + attendancePerson.value
        messageDIV.innerHTML = outputText
       }
    </SCRIPT>
  </HEAD>
 
  <BODY>
    <CENTER>
      <H1>
        Odczytywanie atrybutów z dokumentów XML
      </H1>
 
      <INPUT TYPE="BUTTON" VALUE="Pobierz informacje o trzeciej osobie"
         ONCLICK="readXMLDocument()">
      <P>
        <DIV ID="messageDIV"></DIV>
    </CENTER>
  </BODY>
</HTML>

 

1 odpowiedź

0 głosów
odpowiedź 27 października 2016 przez Comandeer Guru (599,730 p.)

Problem polega na tym, że znacznik xml nie istnieje, więc nie masz z czego pobrać tego XML-a. Najprościej byłoby ten plik XML zaciągać Ajaksem.

komentarz 28 października 2016 przez Newperty Początkujący (280 p.)

Czy do Ajaksa będę musiał używać JQuery? Znalazłem taki kod ale nie do końca rozumiem  :/ Zwłaszcza ten "if"

function testAjax()
		{
		var ajaxClient = new XMLHttpRequest();
		ajaxClient.open('POST', 'ascIksemel.xml');
		ajaxClient.setRequestHeader("Content-Type", "text/xml");
		ajaxClient.onreadystatechange = function()
		{
			if (4 === this.readyState &amp;&amp; 200 === this.status)
			{
				alert(this.responseXML.
					getElementsByTagName('periods')[0].
					getElementsByTagName('period')[0].
					firstChild.nodeValue);
			}
		}
		ajaxClient.send(null);
		}
komentarz 28 października 2016 przez Comandeer Guru (599,730 p.)

Nie, nie będziesz musiał.

Ten if sprawdza, czy żądanie się wykonało i co zwrociło.

Podobne pytania

0 głosów
0 odpowiedzi 359 wizyt
pytanie zadane 7 lutego 2018 w JavaScript przez Anoonymous Obywatel (1,560 p.)
0 głosów
0 odpowiedzi 131 wizyt
pytanie zadane 26 października 2020 w Inne języki przez Lyokoheros Początkujący (340 p.)
0 głosów
1 odpowiedź 282 wizyt
pytanie zadane 14 sierpnia 2017 w C i C++ przez niezalogowany

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...