[PHP/XML] Alle elementen met een bepaalde tag verkrijgen*

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • reapher
  • Registratie: Augustus 1999
  • Laatst online: 07-06 21:56
Ik zit met het volgende probleem.

Ik heb een xsl bestand wat ik inlaad als xml in de DOMDocument. Vervolgens wil ik in dit bestand alle elementen met tagname PAGETEXT krijgen.

Ik doe dat als volgt. DOMDocument->getElementsByTagName("PAGETEXT").

Nu blijkt dat hij hij af en toe een aantal skipt. Volgens verschillende bronnen komt dit omdat hij de parent PAGETEXT tag vind en dan vervolgens naar het kind daarvan zoekt. Hierdoor pakt hij niet meer de PARENT die zeg maar naast hem staat. Dus als je heb

<TEST>
<PAGETEXT id=1></PAGETEXT>
</TEST>
<TEST>
<PAGETEXT id=2></PAGETEXT>
</TEST>

Dan pakt hij id=2 pagetext niet omdat deze niet id=1 zijn kind is? Dit is dus heel apart. Is er een andere functie om alle elementen met deze tag te krijgen.

Click hier niet


Acties:
  • 0 Henk 'm!

Anoniem: 26306

De getElementsByTagName methode hoort alle child nodes op elke diepte returnen die dieper ligt dan de node waar je de methode van aanroept.. Dus het is òf een bug in PHP, òf je roept de methode van het verkeerde element aan. Nu zullen de <TEST> elementen nog wel een parent moeten hebben natuurlijk, want je kunt maar 1 document element hebben. Daar gaat het ook nog weleens mis.

Acties:
  • 0 Henk 'm!

  • reapher
  • Registratie: Augustus 1999
  • Laatst online: 07-06 21:56
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<p class="CONTENT_HEAD"><PAGETEXT ID="ADMIN_PAGE_DOMAINS"/></p>
<table  width="100%" class="CONTENT_LIST_HEAD">
    <tr>
        <td align="left" width="10">
            <xsl:choose>
                <xsl:when test="/ROOT/CANADD = 1">
                    <div id="ADDPIC">
                        [img]"TPL/default/images/add.gif"[/img]
                    </div>
                </xsl:when>
            </xsl:choose>
        </td>
        <td><PAGETEXT ID="DOMAIN_OVERVIEW"/></td>
    </tr>
</table>


Dit is een stukje echte code. De eerste pagetext doet hij dus wel. De tweede dus niet.

Click hier niet


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 15:42

aex351

I am the one

Ze liggen beide in een andere root, ik denk dat dat het probleem is. Zie ook antwoord van Cheatah.

[ Voor 20% gewijzigd door aex351 op 08-04-2006 19:04 ]

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • reapher
  • Registratie: Augustus 1999
  • Laatst online: 07-06 21:56
Dat lijkt er sterk op ja. Maar als ik ze nou eens niet in dezelfde root kan zetten? Wat is dan handig om deze Elementen te krijgen

Click hier niet