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 № 1Naprawdę 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ę.