Insert HTML binding into XML document

How do I put the embed html anchor inside the xml element? Consider the following xml:

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

      

When I show the content of an element, I get text, not hyperlinks.

Here is the code I am using to display XML data in an asp.net web forms 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

      

+2


source to share


2 answers


XML is XML, HTML is HTML. If you are trying to parse XML as HTML, extract the content <Email>

that I suggest to wrap with <![CDATA[

and ]]>

and spit it out into HTML.



Also include the code you are using to display.

+2


source


The following XML example works great for the example above.



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

      

+2


source







All Articles