Google Groups unterstützt keine neuen Usenet-Beiträge oder ‑Abos mehr. Bisherige Inhalte sind weiterhin sichtbar.

XPath: Element mit id() auswählen

0 Aufrufe
Direkt zur ersten ungelesenen Nachricht

Philipp Weissenbacher

ungelesen,
03.01.2009, 09:29:4703.01.09
an
Hallo!

Ich versuche bei folgender XML-Anwendung den Eintrag des Autors Joshua
Marinacci mittels id("jm") auszuwählen, was aber nicht funktioniert.

<benutzer name="Georg Schlaumeyer" geburtsdatum="11-02-1983"
matrikelnummer="a047711">
<ausweis nr="A2233112" foto="porträt.jpg" signatur="foobarbaz123"
signaturTyp="RSA_SHA1" gueltigkeitsEnde="30-04-2009"></ausweis>
<buch autoren="jm ca">
<titel>Swing Hacks</titel>
<untertitel>Tips & Tools for Building Killer GUIs</untertitel>
<ISBN>0-596-00907-0</ISBN>
<kapitel nr="1">Basic JComponents</kapitel>
<kapitel nr="7">Text</kapitel>
<kapitel nr="12">Miscellany</kapitel>
</buch>
<buch autoren="ath amv rk vk trh ia">
<titel>Iso suomen kielioppi</titel>
<untertitel></untertitel>
<ISBN>951-746-557-2</ISBN>
<kapitel nr="1">Iso suomen kielioppi ja muut kieliopit</kapitel>
<kapitel nr="2">Tällöin objektin sijana on akkusatiivi</kapitel>
<kapitel nr="3">Kuka tahansa voi lukea tämä puhuu suomi</kapitel>
</buch>
<autor gebDat="22-12-1976" geschlecht="m" id="jm">Joshua Marinacci</
autor>
<autor gebDat="12-04-1978" geschlecht="m" id="ca">Chirs Adamson</
autor>
<autor gebDat="10-03-1941" geschlecht="w" id="ath">Auli Talvikki
Hakulinen</autor>
<autor gebDat="22-05-1952" geschlecht="w" id="amv">Anna-Maria
Vilkuna</autor>
<autor gebDat="02-08-1948" geschlecht="w" id="rk">Riitta Korhonen</
autor>
<autor gebDat="14-12-1960" geschlecht="m" id="vk">Vesa Koivisto</
autor>
<autor gebDat="06-02-1955" geschlecht="w" id="trh">Tarja-Riitta
Heinonen</autor>
<autor gebDat="21-07-1960" geschlecht="w" id="ia">Irja Alho</autor>
</benutzer>

Warum funktioniert das nicht?
In der DTD schreibe ich doch:

<!ELEMENT autor (#PCDATA)>
<!ATTLIST autor (Schnip!)
id ID #REQUIRED
>

und

<!ELEMENT buch (titel, untertitel, ISBN, kapitel*)>
<!ATTLIST buch autoren IDREFS #REQUIRED>
(Schnip!)

Martin Honnen

ungelesen,
03.01.2009, 10:03:1503.01.09
an
Philipp Weissenbacher wrote:

> Ich versuche bei folgender XML-Anwendung den Eintrag des Autors Joshua
> Marinacci mittels id("jm") auszuwählen, was aber nicht funktioniert.

> <autor gebDat="22-12-1976" geschlecht="m" id="jm">Joshua Marinacci</
> autor>

> In der DTD schreibe ich doch:
>
> <!ELEMENT autor (#PCDATA)>
> <!ATTLIST autor (Schnip!)
> id ID #REQUIRED

Dann sollte das funktionieren, so der XML-Parser die DTD liest und die
Informationen an den XPath/XSLT-Prozessor weiterleitet.
Welche Software benutzt du denn für XPath?


--

Martin Honnen
http://JavaScript.FAQTs.com/

Philipp Weissenbacher

ungelesen,
03.01.2009, 11:10:1803.01.09
an
Ich benutze Firefox mit der Erweiterung XPather (https://
addons.mozilla.org/en-US/firefox/addon/1192).

Lustigerweise funktioniert id("p4567") bei dem Beispieldokument aus
"XML in a Nutshell" (http://www.cafeconleche.org/books/xian3/examples/
09/9-1.xml) aber problemlos.

Ich vermute, dass mit der DTD irgendwas nicht stimmt. Hier einmal die
vollständige:

<!-- benutzer -->
<!ELEMENT benutzer (ausweis, buch+, autor+) >
<!ATTLIST benutzer name CDATA #REQUIRED
geburtsdatum CDATA #REQUIRED
matrikelnummer CDATA #IMPLIED
>

<!-- ausweis -->
<!ELEMENT ausweis EMPTY>
<!ATTLIST ausweis nr ID #REQUIRED
foto CDATA #REQUIRED
signatur NMTOKEN #REQUIRED
signaturTyp (RSA_SHA1 | RSA_MD5 | RSA_RIPEMD-160) #REQUIRED
gueltigkeitsEnde CDATA #IMPLIED
>

<!-- buch -->


<!ELEMENT buch (titel, untertitel, ISBN, kapitel*)>
<!ATTLIST buch autoren IDREFS #REQUIRED>

<!ELEMENT titel (#PCDATA)>
<!ELEMENT untertitel (#PCDATA)>
<!ELEMENT ISBN (#PCDATA)>

<!ELEMENT kapitel (#PCDATA)>
<!ATTLIST kapitel nr NMTOKEN #REQUIRED>


<!-- autor -->
<!ELEMENT autor (#PCDATA)>
<!ATTLIST autor gebDat NMTOKEN #REQUIRED
geschlecht (m | w) #REQUIRED
id ID #REQUIRED
>

Martin Honnen

ungelesen,
03.01.2009, 11:16:0503.01.09
an
Philipp Weissenbacher wrote:

> Ich benutze Firefox mit der Erweiterung XPather (https://
> addons.mozilla.org/en-US/firefox/addon/1192).
>
> Lustigerweise funktioniert id("p4567") bei dem Beispieldokument aus
> "XML in a Nutshell" (http://www.cafeconleche.org/books/xian3/examples/
> 09/9-1.xml) aber problemlos.
>
> Ich vermute, dass mit der DTD irgendwas nicht stimmt.

Ich vermute eher, dass du eine externe DTD benutzt. Firefox hat mit
Expat einen nicht validierenden XML-Parser, der externe DTDs gar nicht
laedt.
Das Dokument 9-1.xml, das du oben nennst, definiert hingegen alles im
"internal subset" der DTD.

Philipp Weissenbacher

ungelesen,
03.01.2009, 11:29:1003.01.09
an

Wohooo!! Genau das war's!
Danke vielmals!

0 neue Nachrichten