Zyrano: Teile einer xml datei anzeigen

Hi, ich habe in vb ein kleines programm erstellt, dass mir in einem webbrowser steuerelement xml dateien anzeigen kann.
für die xml dateien habe ich ein xsl geschrieben, das mir diese darstellt.

mein problem ist jetzt wie folgt. beim aufruf der dateien soll das xsl nicht immer die gesammte xml datei sondern nur einen gewünschten teil davon, quasi nur ein kapitel, darstellen.

wie kann ich das am besten umsetzen.

viele dank

  1. Hi, mein problem hat sich jetzt ein wenig verlagert, vielleicht könnt ihr mir trotzdem helfen.
    ich habe folgende xml datei:

    <?xml version="1.0" encoding="iso-8859-1"?>  
    <?xml-stylesheet type="text/xsl" href="style.xsl"?>  
    <europa>  
       <land>  
          <name name="titel">Deutschland</name>  
          <einwohnerzahl einheit="Millionen">82.4</einwohnerzahl>  
          <hauptstadt>Berlin</hauptstadt>  
          <kfz-kennzeichen>D</kfz-kennzeichen>  
          <tel-vorwahl>0049</tel-vorwahl>  
       </land>  
       <land>  
          <name name="titel">Frankreich</name>  
          <einwohnerzahl einheit="Millionen">58.5</einwohnerzahl>  
          <hauptstadt>Paris</hauptstadt>  
          <kfz-kennzeichen>F</kfz-kennzeichen>  
          <tel-vorwahl>0033</tel-vorwahl>  
       </land>  
       <land>  
          <name name="titel">Spanien</name>  
          <einwohnerzahl einheit="Millionen">39.4</einwohnerzahl>  
          <hauptstadt>Madrid</hauptstadt>  
          <kfz-kennzeichen>E</kfz-kennzeichen>  
          <tel-vorwahl>0034</tel-vorwahl>  
       </land>  
    </europa>  
    
    

    mit der dazugehörigen xsl datei:

    <?xml version="1.0" encoding="iso-8859-1"?>  
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
    <xsl:param name="Land"/>  
      
    <xsl:template match="europa">  
     <html>  
      <head>  
        <title>Europa xml - xslt</title>  
      </head>  
      <body>  
        <h1>Europa</h1>  
        <xsl:apply-templates/>  
      </body>  
     </html>  
    </xsl:template>  
      
    <xsl:template match="name">  
      <h2>Land:  
      <a>  
      <xsl:attribute name="name">  
      <xsl:value-of select="."/>  
      </xsl:attribute>  
      </a>  
      <xsl:apply-templates/>  
      </h2>  
     </xsl:template>  
      
     <xsl:template match="einwohnerzahl">  
      <br/>  
      Einwohner: <xsl:apply-templates/> Millionen  
      </xsl:template>  
      <xsl:template match="hauptstadt">  
      <br/>  
      Hauptstadt: <xsl:apply-templates/>  
      <xsl:text> - </xsl:text>  
      </xsl:template>  
      
     <xsl:template match="kfz-kennzecihen">  
      <br/>  
      Kennzeichen: <xsl:apply-templates/>  
      </xsl:template>  
      <xsl:template match="tel-vorwahl">  
      <br/>  
      Vorwahl: <xsl:apply-templates/>  
      <br/>  
        <hr/>  
     </xsl:template>  
      
    </xsl:stylesheet>
    

    wenn jetzt der parameter Land in der xsl datei = Deutschland ist. soll mir auch nur deutschland angezeigt werden.
    habt ihr ne idee wie ich das am besten umsetze?

    vielen dank.

    1. Hallo,

      Hi, mein problem hat sich jetzt ein wenig verlagert,

      Ah, eine ordentliche Problembeschreibung! :)

      wenn jetzt der parameter Land in der xsl datei = Deutschland ist. soll mir auch nur deutschland angezeigt werden.
      habt ihr ne idee wie ich das am besten umsetze?

      mit der dazugehörigen xsl datei:

      <?xml version="1.0" encoding="iso-8859-1"?>

      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:param name="Land"/>

      <xsl:template match="/europa">

      <html>
        <head>
          <title>Europa xml - xslt</title>
        </head>
        <body>
          <h1>Europa</h1>

      <xsl:if test="not($Land = '')">
         <xsl:apply-templates select="land[name = $Land]" />
      </xsl:if>

      </body>
      </html>
      </xsl:template>

      <xsl:template match="land">
         <xsl:apply-templates />
      </xsl:template>

      <xsl:template match="name">
        <h2>Land:
        <a>
        <xsl:attribute name="name">
        <xsl:value-of select="."/>
        </xsl:attribute>
        </a>
        xsl:apply-templates/
        </h2>
      </xsl:template>

      ...

      </xsl:stylesheet>

      
      >   
        
      Zu VB siehe z.B:  
      <http://forum.de.selfhtml.org/archiv/2006/8/t134643/#m873520>  
      Musst vor allem auf xmlDoc.setProperty "SelectionLanguage", "XPath" achten.  
      Weitere Infos/Beispile findest du z.B. in der Hilfe zu MSXML  
      <http://www.microsoft.com/downloads/details.aspx?FamilyID=3144b72b-b4f2-46da-b4b6-c5d7485f2b42&DisplayLang=de> (oder in der 6-er Version.  
        
      Grüße  
      Thomas  
      
      
      1. Besten dank, das funktioniert super.
        Vielen Dank für deine Hilfe.

        Aber eine Kleinigkeit hab ich noch.
        Falls ich jetzt ein Land angebe, das nicht in der XML aufgelistet ist, soll der ne Meldung ausgeben.

        Wie würde das gehen?

        Danke

        1. Hallo,

          Besten dank, das funktioniert super.
          Vielen Dank für deine Hilfe.

          Gerne.

          Aber eine Kleinigkeit hab ich noch.
          Falls ich jetzt ein Land angebe, das nicht in der XML aufgelistet ist, soll der ne Meldung ausgeben.

          Wie würde das gehen?

          Ja, an der Stelle von xsl:if folgendes verwenden:

          xsl:choose
             <xsl:when test="land[name = $Land]">
                <xsl:apply-templates select="land[name = $Land]" />
             </xsl:when>
             xsl:otherwise
           Meldung:  .... bla blub ....
             </xsl:otherwise>
          </xsl:choose>

          Grüße
          Thomas