Martin Jedlička napsal(a):
Zdravim,mam dotaz ohledne hledani elementu v XML souboru.Mam nize uvedeny XML soubor (tento soubor je upraveny format DWARF2), ktery obsahuje jednotlive elementy. Kazdy element ma nejake 'idref', ktery odkazuje da dalsi element. Priklad : variable -> volatile_type -> far_type -> typedef -> structure_type A potrebuju zjistit nejakym dotazem nazev struktury (t_bitStruktura), jeji polozky (b0, b1) atd...Mam na toto pouzit XPath nebo XQuery? Co je lepsi? Nejaky priklad?
Napsal jsem si krátkou XSLT trasnformaci, která vloží odkazované tagy na místo tagu <ref>: <?xml version="1.0" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="UTF-8" indent="yes" omit-xml-declaration="no"/> <xsl:template match="/"> <xsl:apply-templates select="/root/variable"/> </xsl:template> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="ref"> <xsl:variable name="idval" select="string(@idref)"/> <xsl:apply-templates select="//[EMAIL PROTECTED]" /> </xsl:template> </xsl:stylesheet> a když tím vstupní data proženu, dostanu pěkně stromovou strukturu: <variable id="0x6b"> <location>0x00000000</location> <name>promenna1</name> <volatile_type id="0x5ab"> <far_type id="0x5b0"> <typedef id="0x596"> <name>t_bitStruktura</name> <structure_type id="0x4b8"> <name>t_bitStruktura</name> <byte_size> ... atd. a v té už se dají informace snadno nalézt pomocí XPath, např. název struktury /variable/volatile_type/far_type/typedef/name/text() Takže bych to dělal transformací a následně XPath. Makub -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Supercomputing Center Brno Martin Kuba Institute of Computer Science email: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
