2009-10-22 6 views
2

Comment intégrer une ancre html dans un élément xml? Considérons le xml suivant:Intégrer une ancre HTML dans un document XML

<?xml version="1.0" encoding="utf-8"?> 
<Customers> 
    <Customer> 
      <FirstName>Joe</FirstName> 
      <LastName>Mama</LastName> 
      <Email><a href="mailto:[email protected]">[email protected]</a></Email> 
      <Website><a href="http://www.joemama.com">www.joemama.com</a></Website> 
    </Customer> 
</Customer> 

Lorsque j'affiche le contenu de l'élément, je reçois uniquement du texte, pas de lien hypertexte.

Voici le code que je utilise pour afficher les données XML dans une forme web asp.net page:

CustomerView HTML

<%@ control language="vb" autoeventwireup="false" codebehind="CustomerView.ascx.vb" 
    inherits="Sparta.Web.CustomerView" %> 
<div class="View"> 
    <table> 
     <tr> 
      <td>First Name:</td> 
      <td><asp:label id="FirstName" runat="server"></asp:label></td> 
     </tr> 
     <tr> 
      <td>Last Name:</td> 
      <td><asp:label id="LastName" runat="server"></asp:label></td> 
     </tr> 
     <tr> 
      <td>Email:</td> 
      <td><asp:literal id="Email" runat="server"></asp:literal></td> 
     </tr> 
     <tr> 
      <td>Website:</td> 
      <td><asp:literal id="Website" runat="server"></asp:literal></td> 
     </tr> 
    </table> 
</div> 

CustomerView Codebehind

Public Partial Class CustomerView 
    Inherits System.Web.UI.UserControl 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
      Me.DataBind() 
    End Sub 

    Private Sub DataBind() 

     Dim xmlDoc As System.Xml.Linq.XDocument = Nothing 
     xmlDoc = XDocument.Load(Server.MapPath("~/data/CustomerData.xml")) 

     Dim listQuery = _ 
     From list In xmlDoc.Descendants("Customer") _ 
     Where list.Element("LastName").Value = Request.QueryString("id") _ 
     Select _ 
     FirstName = list.Element("FirstName").Value, _ 
     LastName= list.Element("LastName").Value, _ 
     Email = list.Element("Email").Value, _ 
     Website = list.Element("Website").Value 

     Dim listInfo = listQuery(0) 
     If listInfo Is Nothing Then 
      Throw New ApplicationException("Missing CustomerData Element") 
     End If 

     Me.FirstName.Text = listInfo.FirstName 
     Me.LastName.Text = listInfo.LastName 
     Me.Email.Text = listInfo.Email 
     Me.Website.Text = listInfo.Website 

    End Sub 

End Class 

Répondre

2

XML est XML , HTML est HTML. Si vous essayez d'analyser XML en HTML, puis extraire le contenu de <Email>, que je suggère d'envelopper avec <![CDATA[ et ]]> et le cracher en HTML.

Veuillez également indiquer le code que vous utilisez pour l'afficher.

2

Le code XML suivant fonctionne parfaitement pour l'exemple ci-dessus.

<?xml version="1.0" encoding="utf-8"?> 
<Customers> 
    <Customer> 
      <FirstName>Joe</FirstName> 
      <LastName>Mama</LastName> 
      <Email><![CDATA[<a href="mailto:[email protected]">[email protected]</a>]]></Email> 
      <Website><![CDATA[<a href="http://www.joemama.com">www.joemama.com</a>]]></Website> 
    </Customer> 
</Customer> 
Questions connexes