/ / Co to jest błąd paskowania? - xml, xslt, rdf, last.fm

Co to jest błąd usuwania? - xml, xslt, rdf, last.fm

Próbuję konwertować jako ostatni.fm xml do rdf przy użyciu xslt i otrzymuję ten błąd: BŁĄD [http-8080-1] (RDFDefaultErrorHandler.java:40) - (wiersz 3, kolumna 24): {E202} Oczekiwanie początkowego lub końcowego elementu (ów) XML. Dane tekstowe „Joseph Arthur” są niedozwolone. Może błąd w paski.

Czy ktoś może mi wytłumaczyć, czym jest błąd związany z pasowaniem lub ogólnie, co robię źle.

Kod xslt jest tutaj:

    <xsl:for-each select="/lfm/artists/artist">
<lfm:name><xsl:value-of select="name"/></lfm:name>
</xsl:for-each>

Oto lokalizacja xml: http://ws.audioscrobbler.com/2.0/?method=library.getartists&api_key=b25b959554ed76058ac220b7b2e0a026&user=joanofarctan

Dzięki.

Odpowiedzi:

3 dla odpowiedzi № 1

Naprawdę pomocne byłoby zobaczenie pełnego XML utworzonego przez to lub przynajmniej pełnego xslt i wejściowego xml (w którym nie ma wzmianki o „Joseph Arthur”).

Więc odkładając to wszystko na bok, tworzony plik rdf / xml psuje ważną funkcję zwaną „stripingiem”. Dan Brickley napisał przydatne wyjaśnienie, ale tutaj jest bardzo krótkie podsumowanie: po przedstawieniu rdf / xml

<a>
<b>
<c>
<d>

wiesz, że nieparzyste znaczniki (a, c) odpowiadają węzłom na grafie rdf, podczas gdy parzyste znaczniki (c, d) reprezentują krawędzie lub właściwości. Węzły i właściwości składni „paski”.

Ponadto, jeśli element zawiera tekst, musi być właściwością (elementy węzłów zawsze zawierają tylko inne elementy lub nic).

Więc parser pomyślał, że to w węźle, dlatego spodziewał się więcej elementów, znalazł tekst i sugeruje, że używasz właściwości w niewłaściwym miejscu. Domyślam się, że twój plik rdf wygląda następująco:

<rdf:RDF ...>
<lfm:name>Joseph Arthur</lfm:name>
....

Powiedziałeś, że coś ma nazwę właściwości z wartością „Joseph Arthur”, ale nie zawierałeś węzła tematu, więc nie wiemy, co ma to imię.