There is a mistake in your html code.
<a href="Default.aspx?News=<%#XPath("title")%"><%#XPath("title")%></a>
Here i have binbed the Repeater with XmlDataSource as you have done in your sample.
<form id="form1" runat="server">
<div>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/XML/Customers.xml">
</asp:XmlDataSource>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text="<%# Container.ItemIndex +1 %>"></asp:Label>
<a href="Default.aspx?News=<%#XPath("Name")%>"><%#XPath("Name")%></a>
<br />
<asp:Label ID="Desc" runat="server" Text='<%#XPath("Phone")%>'></asp:Label>
<br />
<asp:Label ID="lnklink" runat="server" Text='<%#XPath("City")%>'></asp:Label><br />
<asp:LinkButton runat="server" Text="GetIndex" OnClick="GetIndex" ID="lnkGetIndex"></asp:LinkButton>
<hr style="color: #0099ff;" />
<br />
</ItemTemplate>
</asp:Repeater>
</div>
</form>
My XML:
<?xml version="1.0" encoding="utf-8" ?>
<CustomerDataSet>
<CustomerTable>
<Name>Azim</Name>
<Email>26</Email>
<Phone>23000</Phone>
<City>Mumbai</City>
</CustomerTable>
<CustomerTable>
<Name>Sabah</Name>
<Email>26</Email>
<Phone>23000</Phone>
<City>Mumbai</City>
</CustomerTable>
<CustomerTable>
<Name>Amir</Name>
<Email>26</Email>
<Phone>23000</Phone>
<City>Mumbai</City>
</CustomerTable>
</CustomerDataSet>
C#: for finding the Id. Your code is working fine here its selecting the perticular Id on Button click.
protected void GetIndex(object sender, EventArgs e)
{
string id = (((sender as LinkButton).NamingContainer as RepeaterItem).FindControl("Label3") as Label).Text;
Session["id"] = id.ToString();
}
Thank You.