JS & XML problem

Odpowiedz Nowy wątek
2018-04-24 13:50

Rejestracja: 2 lata temu

Ostatnio: 1 rok temu

0

Cześć.
W pliku XML mam kilka "fanów" z taką strukturą jak poniżej. Każdy fan ma inną liczbę znajomych (friend). Jak przypisać danemu fanowi liczbę jego przyjaciół, albo np. wypisać *imię fana: imiona

edytowany 3x, ostatnio: Dzony322, 2018-04-25 10:02
Super tagi. Piszesz w dziale js, więc 2/3 tagów możesz wywalić... - ŁF 2018-04-24 13:53
A gdzieś Ty widział, żeby usuwać rozwiązane wątki? - somekind 2018-04-25 09:04
To nie do Ciebie tylko autora, który zaraportował, żeby mu wątek usunąć. - somekind 2018-04-25 15:09
Domyśliłem się, ale taki trochę partyzancki ten komentarz Ci wyszedł ;-) - ŁF 2018-04-25 16:21

Pozostało 580 znaków

ŁF
2018-04-24 14:09
ŁF
Moderator

Rejestracja: 17 lat temu

Ostatnio: 3 dni temu

0

Xml może mieć tylko jeden root, więc ten Twój jest nieprawidłowy.

var xmlText = `<FANS>
     <FAN>
            <AGE>15</AGE>
            <NAME>Andrzej Kowalski</NAME>
            <USERIMAGE>/img/andrzejkowalski.jpg</USERIMAGE>
            <GENDER>Mężczyzna</GENDER>
            <COUNTRY>Poland</COUNTRY>
            <TOTAL_REACTIONS>1</TOTAL_REACTIONS>
            <TOTAL_COMMENTS>3</TOTAL_COMMENTS>
            <TOTAL_SHARES>2</TOTAL_SHARES>
            <USERID>159093717469358</USERID>
            <FRIENDS>
                <FRIEND>Michał Kowalski</FRIEND>
                <FRIEND>Janusz Polak</FRIEND>
                <FRIEND>Szymon Niewidomy</FRIEND>
            </FRIENDS>
        </FAN>
        <FAN>
            <AGE>18</AGE>
            <NAME>Michał Kowalski</NAME>
            <USERIMAGE>/img/michalkowalski.jpg</USERIMAGE>
            <GENDER>Mężczyzna</GENDER>
            <COUNTRY>Poland</COUNTRY>
            <TOTAL_REACTIONS>1</TOTAL_REACTIONS>
            <TOTAL_COMMENTS>5</TOTAL_COMMENTS>
            <TOTAL_SHARES>2</TOTAL_SHARES>
            <USERID>159093717469358</USERID>
            <FRIENDS>
                <FRIEND>Andrzej Kowalski</FRIEND>
            </FRIENDS>

        </FAN>
</FANS>`;

var dp = new DOMParser();
var xmlDoc = dp.parseFromString(xmlText, "text/xml");
var fans = xmlDoc.getElementsByTagName("FAN");
for (var i = 0; i < fans.length; i++) console.log(fans[i].getElementsByTagName("NAME")[0].textContent)

Tu masz artykuł, z którego czerpałem wiedzę: https://www.w3schools.com/xml/dom_intro.asp


edytowany 1x, ostatnio: ŁF, 2018-04-24 14:25

Pozostało 580 znaków

2018-04-24 14:22

Rejestracja: 2 lata temu

Ostatnio: 1 rok temu

0

Tak, to wiem. Jednak nie do końca o to mi chodzi. Każdy FAN, ma ileś tam znajomych "FRIEND". Pierwszy fan ma trzech znajomych, drugi ma jednego. I potrzebuje uzyskać informacje np. w takiej postaci:

imięFana1: imięZnajomego1
imięFana1: imięZnajomego2
imięFana1: imięZnajomego3
imięFana2: imięZnajomego1

Czyli byłoby to:
Andrzej Kowalski: Michał Kowalski
Andrzej Kowalski: Janusz Polak
Andrzej Kowalski: Szymon Niewidomy
Michał Kowalski: Andrzej Kowalski

edytowany 6x, ostatnio: Dzony322, 2018-04-25 10:02
liczbaFriendsow? Co to za potwór? - Patryk27 2018-04-24 14:30
Oj "nazwa robocza" zmiennej :D - Dzony322 2018-04-24 14:32

Pozostało 580 znaków

ŁF
2018-04-24 14:34
ŁF
Moderator

Rejestracja: 17 lat temu

Ostatnio: 3 dni temu

Dokładnie tak samo.

for (var i = 0; i < fans.length; i++) {
    var currentFanName = fans[i].getElementsByTagName("NAME")[0].textContent;

    var friends = fans[i].getElementsByTagName("FRIENDS")[0].getElementsByTagName("FRIEND");
    for (var j = 0; j < friends.length; j++) {
        var currentFriendName = friends[j].textContent;
        console.log(currentFanName + " " + currentFriendName);
    }
}

Musisz jeszcze uwzględnić to, że fan może być odludkiem i nie mieć żadnych kumpli, oraz podzielić mój kod na funkcje, żeby się lepiej czytał - ja nie mam na to czasu,


Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0