If you implement approach described in the article How to make XML nonhierarchical data binding, you can display only attributes values. You can get the text from nested elements by using XPath data binding expressions.

C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development: Build applications with C#, .NET Core, Entity Framework Core, ASP.NET Core, and ML.NET using Visual Studio Code, 4th Edition
ASP.NET Core 3 and Angular 9: Full stack web development with .NET Core 3.1 and Angular 9, 3rd Edition
C# in Depth, 4th Edition

You can do this by using a template that defines XPath data binding expressions.  XPath data binding expressions are similar to Eval() expressions, except instead of supplying the name of the field you want to display, you supply an XPath expression based on the current node.

For example, here’s an XPath expression that starts at the current node, looks for a nested node named Title, and gets associated element text:


<%# XPath(“Title”)%>


As with the Eval() method, you can use an optional second parameter with a format string when calling XPath():


<%# XPath(“Price”, “{0:c}”) %>


The next markup lines show how to use GridView with a simple set of XPath expressions:


<asp:GridView ID=”GridView1″ runat=”server” DataSourceID=”sourceBooks” AutoGenerateColumns=”False”>


<asp:TemplateField HeaderText=”Book”>


<b><%# XPath(“@ISBN-13”) %></b>

<br />

<b><%# XPath(“@Title”) %></b>

<br />

<%# XPath(“Author”, “{0:c}” ) %>

<br />

<%# XPath(“Price”, “{0:c}” ) %>

<br />






Note: Symbol @ is used in front of each attribute

The next picture shows the result


Using of XPath to make XML data binding

Using of XPath to make XML data binding