Controllo server Web Xml

Visualizza un documento XML oppure i risultati di una trasformazione XSL.

<asp:Xmlid="Xml1"     Document="XmlDocument object to display"     DocumentContent="String of XML"     DocumentSource="Path to XML Document"     Transform="XslTransform object"     TransformSource="Path to XSL Transform Document"     runat="server">

Osservazioni

Utilizzare il controllo Xml per visualizzare il contenuto di un documento XML oppure i risultati di una trasformazione XSL.

Il documento XML da visualizzare viene specificato impostando una delle tre proprietà disponibili. Le tre proprietà rappresentano i diversi tipi di documenti XML che possono essere visualizzati. Impostando la proprietà adeguata, è possibile visualizzare un oggetto System.Xml.XmlDocument, una stringa XML oppure un file XML. Nella tabella seguente sono elencate le proprietà per la specifica del documento XML.

Proprietà Descrizione
Document Imposta il documento XML utilizzando un oggetto System.Xml.XmlDocument.
DocumentContent Imposta il documento XML utilizzando una stringa.
Nota   La proprietà viene in genere impostata a livello di dichiarazione, inserendo il testo tra i tag <asp:Xml> di apertura e di chiusura del controllo Xml.
DocumentSource Imposta il documento XML utilizzando un file.

Nota   È necessario impostare almeno una delle proprietà dei documenti XML, altrimenti non verrà visualizzato alcun documento XML. Se è impostata più di una proprietà dei documenti XML, viene visualizzato il documento XML nell'ultima proprietà impostata. I documenti nelle altre proprietà saranno ignorati.

Se si imposta una delle due proprietà elencate di seguito, è possibile specificare un documento di trasformazione XSL che formatta il documento XML prima che venga scritto nel flusso di output. Le due proprietà rappresentano i diversi tipi di documenti di trasformazione XSL che possono essere utilizzati per formattare il documento XML. Impostando la proprietà adeguata, è possibile formattare il documento XML con un oggetto System.Xml.Xsl.XslTransform o con un file di trasformazione XSL. Se non è specificato alcun documento di trasformazione XSL, il documento XML viene visualizzato utilizzando il formato predefinito. Nella tabella seguente vengono elencate le proprietà per specificare un documento di trasformazione XSL.

Proprietà Descrizione
Transform Formatta il documento XML utilizzando l'oggetto System.Xml.Xsl.XslTransform specificato.
TransformSource Formatta il documento XML utilizzando il file di trasformazione XSL specificato.

Nota   Il documento di trasformazione XSL è facoltativo. In questo caso non è necessario impostare le proprietà Transform o TransformSource. Se sono impostate entrambe le proprietà dei documenti di trasformazione XSL, l'ultima proprietà impostata determina il documento di trasformazione XSL che verrà utilizzato per formattare il documento XML. L'altra proprietà sarà ignorata.

La classe Xml fornisce inoltre la proprietà TransformArgumentList, che consente di aggiungere argomenti facoltativi al file di trasformazione XLS. Gli argomenti possono essere parametri XSLT oppure oggetti estensione.

Esempio

Di seguito è riportato un file XML di esempio:

<People>
   <Person>
      <Name>
         <FirstName>Joe</FirstName>
         <LastName>Suits</LastName>
      </Name>
      <Address>
         <Street>1800 Success Way</Street>
         <City>Redmond</City>
         <State>WA</State>
         <ZipCode>98052</ZipCode>
      </Address>
      <Job>
         <Title>CEO</Title>
         <Description>Wears the nice suit</Description>
      </Job>
   </Person>

   <Person>
      <Name>
         <FirstName>Linda</FirstName>
         <LastName>Sue</LastName>
      </Name>
      <Address>
         <Street>1302 American St.</Street>
         <City>Paso Robles</City>
         <State>CA</State>
         <ZipCode>93447</ZipCode>
      </Address>
      <Job>
         <Title>Attorney</Title>
         <Description>Stands up for justice</Description>
      </Job>
   </Person>

   <Person>
      <Name>
         <FirstName>Jeremy</FirstName>
         <LastName>Boards</LastName>
      </Name>
      <Address>
         <Street>34 Palm Avenue</Street>
         <City>Waikiki</City>
         <State>HI</State>
         <ZipCode>98052</ZipCode>
      </Address>
      <Job>
         <Title>Pro Surfer</Title>
         <Description>Rides the big waves</Description>
      </Job>
   </Person>

   <Person>
      <Name>
         <FirstName>Joan</FirstName>
         <LastName>Page</LastName>
      </Name>
      <Address>
         <Street>700 Webmaster Road</Street>
         <City>Redmond</City>
         <State>WA</State>
         <ZipCode>98073</ZipCode>
      </Address>
      <Job>
         <Title>Web Site Developer</Title>
         <Description>Writes the pretty pages</Description>
      </Job>
   </Person>
</People>

Di seguito è riportato un file di trasformazione XSL di esempio:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/People">
      <xsl:apply-templates select="Person" />
   </xsl:template>
  
   <xsl:template match="Person">
      <table width="100%" border="1">
         <tr>
            <td>
               <b>
                  <xsl:value-of select="Name/FirstName" />
                  &#160;
                  <xsl:value-of select="Name/LastName" />
               </b>
            </td>
         </tr>
         <tr>
            <td>
               <xsl:value-of select="Address/Street" /><br />
               <xsl:value-of select="Address/City" />
               , 
               <xsl:value-of select="Address/State" /> 
               <xsl:value-of select="Address/Zip" />
            </td>
         </tr>
         <tr>
            <td>
               Job Title: <xsl:value-of select="Job/Title" /><br />
               Description: <xsl:value-of select="Job/Description" />
            </td>
         </tr>
      </table>

   </xsl:template>

   <xsl:template match="bookstore">
      <!-- Prices and books -->
      <bookstore>
         <xsl:apply-templates select="book"/>
      </bookstore>
   </xsl:template>

   <xsl:template match="book">
      <book>
         <xsl:attribute name="ISBN">
            <xsl:value-of select="@ISBN"/>
         </xsl:attribute>
         <price>
            <xsl:value-of select="price"/>
         </price>
         <xsl:text>
         </xsl:text>
      </book>
   </xsl:template>

</xsl:stylesheet>

Nell'esempio seguente viene mostrato come utilizzare il controllo Xml per visualizzare il file di XML di esempio utilizzando il file di trasformazione XSL di esempio. Assicurarsi che il file XML di esempio sia denominato People.xml e che il file di trasformazione XSL di esempio sia denominato Peopletable.xsl.

<html>
<body>
   <h3>Xml Example</h3>
   <form runat="server">
      <asp:Xml id="xml1" 
           DocumentSource="people.xml" 
           TransformSource="peopletable.xsl" 
           runat="server" />
   </form>
</body>
</html>

Nell'esempio seguente viene mostrato come creare oggetti XmlDocument e XslTransform dal file XML di esempio e dal file di trasformazione XSL di esempio. Gli oggetti verranno quindi utilizzati dal controllo Xml per visualizzare il documento XML. Assicurarsi che il file XML di esempio sia denominato People.xml e che il file di trasformazione XSL di esempio sia denominato Peopletable.xsl.

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
   <script runat="server">
      Sub Page_Load(sender As Object, e As EventArgs)
         Dim doc As XmlDocument = New XmlDocument()
         doc.Load(Server.MapPath("people.xml"))

         Dim trans As XslTransform = new XslTransform()
         trans.Load(Server.MapPath("peopletable.xsl"))

         xml1.Document = doc
         xml1.Transform = trans
      End Sub
</script>
<body>
   <h3>Xml Example</h3>
   <form runat="server">
      <asp:Xml id="xml1" runat="server" />
   </form>
</body>
</html>
[C#]
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
   <script runat="server">
      void Page_Load(Object sender, EventArgs e) 
      {
         XmlDocument doc = new XmlDocument();
         doc.Load(Server.MapPath("people.xml"));

         XslTransform trans = new XslTransform();
         trans.Load(Server.MapPath("peopletable.xsl"));

         xml1.Document = doc;
         xml1.Transform = trans;
      }
   </script>
<body>
   <h3>Xml Example</h3>
      <form runat="server">
         <asp:Xml id="xml1" runat="server" />
      </form>
</body>
</html>

Vedere anche

Controlli server Web | Classe Xml