Sonntag, Juni 7, 2020

Abrufen eines bestimmten XML-Knoten, jQuery

Relativ neu im Umgang mit XML-Code in jQuery. Ich bin versucht, abrufen von einem bestimmten Knoten aus einer XML-Datei basierend auf einem Attribut im übergeordneten element. Hier ist die XML (kurz-version):

     <?xml version="1.0" encoding="UTF-8"?>
        <members>
           <member row="1">
              <firstName>John</firstName>
              <lastName>Smith</lastName>
              <status>Active</status>
              <title>Member</title>
              <memberSince>August, 2011</memberSince>
           </member>
          <member row="2">
              <firstName>Jane</firstName>
              <lastName>Smith</lastName>
              <status>Active</status>
              <title>Member</title>
              <memberSince>October, 2011</memberSince>
           </member>
     </members>

Verstehe ich die Grundlagen, wie abrufen von XML-Daten mithilfe $.get() in jQuery, aber kann nicht scheinen, um herauszufinden, wie das abrufen nur die details für, sagen wir, member row="2".

Jegliche Hilfe würde sehr geschätzt werden.

Update

Hier ist die jQuery ich verwende für diesen einfachen test, der Alarm gibt, wie undefined

$(document).ready(function() {
    $.get(
        'member_xml.php', function($xml) {
            $xml = $($xml);
            row = 2;
            var test = $xml.find('member[row="' + row + '"]').attr('firstName');
            alert(test);
        },
        'xml'
    );
});

InformationsquelleAutor NightMICU | 2012-02-06

2 Kommentare

  1. 2

    Vorausgesetzt $xml ist Ihr XML-eingewickelt in ein jQuery-Objekt:

    $xml.find('member[row="2"]')

    Wird, wählen Sie die Zeile, die Sie ändern möchten.

    $xml.find('member[row="2"] firstName').text(); //returns Jane

    Hier ist ein Beispiel für diese Arbeit. XML-Selektoren funktionieren in ähnlicher Weise wie die Auswahl von Elementen aus Sie DOM; das meiste, was Sie wissen, dass die hier angewendet werden kann.

    Sieht aus wie dieses auf dem richtigen Weg, aber ich kann nicht scheinen, erhalten Sie den text mit dem obigen code. Es gibt ’nicht definiert‘ wenn ich versuche, in einem alert-message – var test = $xml.find('member[row="2"].attr('firstName');
    Diese Lösung funktioniert Super für mich, danke für deine Hilfe 🙂

    InformationsquelleAutor Chad

  2. 2

    Parsen von xml-Daten mithilfe $.parseXML

    var xml = '<members>\
               <member row="1">\
                  <firstName>John</firstName>\
                  <lastName>Smith</lastName>\
                  <status>Active</status>\
                  <title>Member</title>\
                  <memberSince>August, 2011</memberSince>\
               </member>\
              <member row="2">\
                  <firstName>Jane</firstName>\
                  <lastName>Smith</lastName>\
                  <status>Active</status>\
                  <title>Member</title>\
                  <memberSince>October, 2011</memberSince>\
               </member>\
         </members>';
    
    
        xmlDoc = $.parseXML( xml );
        $xml = $( xmlDoc );
        $member = $xml.find('member[row="2"]').find('firstName').text();
    console.log($member);

    DEMO

    Okay, das funktioniert gut, wie in Ihrem Beispiel, aber wenn ich versuche Verweis auf die externe Datei (member_xml.php), es sagt ungültige XML? Was bin ich?

    InformationsquelleAutor Rafay

Kostenlose Online-Tests