Good Evening StackOverFlowers,
I have recently starting coding in XML via Visual Studio 2010. I have come across what seems to be a simple solution, yet the solution escapes me. I get an error for an Object Reference not set, but I don't see what I haven't set. (error here: http://i.imgur.com/CVaxY.png )
My codebehind:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
public partial class _Default : System.Web.UI.Page
{
int intDVDID;
XmlDocument myXmlDocument = new XmlDocument();
XmlNode rootNode;
XmlNode selectedDVD;
public void Page_Load(object Src, EventArgs E)
{
intDVDID = Convert.ToInt32(Request.QueryString["id"]);
myXmlDocument.Load(Request.PhysicalApplicationPath + #"dvd.xml");
rootNode = myXmlDocument.DocumentElement;
selectedDVD = rootNode.ChildNodes[intDVDID - 1];
if (!Page.IsPostBack)
{
rootNode.RemoveChild(selectedDVD);
myXmlDocument.Save(Request.PhysicalApplicationPath + #"dvd.xml");
lblMessage.Text = "You have successfully deleted the DVD";
}
}
}
Is it just a matter of saying:
int intDVDID = new intDVDID
I know by reading this you're all going to want to pull your hair out at my inexperience and lack of understanding how to solve this, but I appreciate your time and your patience just looking.
Best regards,
Laura :)
Edit:
Here is my XML:
<?xml version="1.0" encoding="utf-8" ?>
<!-- This XML document describes a DVD library -->
<library>
<DVD id="1">
<title>Breakfast at Tiffany's</title>
<format>Movie</format>
<genre>Classic</genre>
</DVD>
<DVD id="2">
<title>Contact</title>
<format>Movie</format>
<genre>Science fiction</genre>
</DVD>
<DVD id="3">
<title>Little Britain</title>
<format>TV Series</format>
<genre>Comedy</genre>
</DVD>
</library>
It is looking like your selectedDVD may null, put some null checks to verify.
if(selectedDVD != null)
{
}
Edit: In response to your question in comments. Here is some example code. I threw in an xpath even though it seems your case is very simple you may want to use this in the future
string xml = "<xml><node id='1'></node><node id='2'></node></xml>";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
//This is an xpath(This replaces your .DocumentElement.ChildNodes[index]
XmlNode desiredNode = xmlDoc.DocumentElement.SelectSingleNode("node[#id='1']");
if (desiredNode != null)
{
xmlDoc.DocumentElement.RemoveChild(desiredNode);
}//if
Pleaase make sure that your query string is not empty it may cause you null reference exeption that you are geting.
if(Request.QueryString["id"]!="")
{
intDVDID = Convert.ToInt32(Request.QueryString["id"]);
}
Related
I have this XML File
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Mobiles>
<Mobile ID="98a2d0b9c2661725a7486423ebd94abdef53ed89051ff5ac7a9c63a4b2a99d7a" RegDate="26/05/2017">
<FullName>Galaxy S-4</FullName>
<Vendor>Samsung</Vendor>
<Date>2010</Date>
<Price>30000SYP</Price>
<Weight>5g</Weight>
<Features>All</Features>
<Notifecations></Notifecations>
<Picture>/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADCAQQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooASio5JVhjZ3dVVV3MzHAAHUk1y+oeMNg/4l9urJ/DNMSFPuqjlh9dvtmmlcLnW0V5Xe+O9aT7lxAv/AFzhA/8AQi1Ydz8SdfT7l8v/AH5j/wDiar2UiedHuFFfPWn/ABQ8V6vtS2u0jlbO1Zlij6epbCj8+vFaB8W/ED+C+0//AMCLb/4qlyMdz3WivCT4p+JX/P1p3/gRbf8AxVc7f/F3xtpt89lcXdr5q/e2xo46A9VODwR0NP2bC59L0tfL8Xxz8Y+Xu86z/wCBWo/oa0rP45+KfvzQ6ZKq/KzfZ3HJzgEhuOh/I0ezYuZH0bS15P4a+NFlqE62+t2i2O75Vuo2LRZ/2gRlR7/MB3Ir1VW3AMp+Wpaa3GncfRRWF4k8WaL4TsPtmsXq26M2I05Z5T6Ko5P8h3xSGbtFeLT/ABy1G/fHhzwfeXkP/PaZjn8VjVgP++qr/wDCy/idLIzJ4Wso0z8qtY3DMPx3jP5CnZge40V4cPiD8T3/AOYNYp/3D5v6yU7/AIT34m/9Ay0/8Fsn/wAdo5WB7fRXh3/CwPiV/wBAyz/8Fsn/AMdp3/Cw/iP/ANAyx/8ABbN/SWjlYHt9FeGf8LN+IkLrv0bT5V7r9huFJHpnecfXBq9qHxc8SJtax8KSt8x3LNHINo9AR1P4Dp74BysD2WivF7L47tbTrF4j8NXNivTzoZN/1O1gpx9CTXqei67pfiLT01DSb2K7tX6PH2PowPKnkcEA0WA1aKKKQBRRRQAUUUUAFFFFABRRRQBy/jCf9xa2f8ErGSVfVVxgH23FfyrgNTvvv/PXVeP53hf5H2t9jk2tx8pyOeeO1Yd34asnkbfd33/fUf8A8RXVQjdaHPVkk9Thr29/2/8AP5VhXFxXoFx4R0r/AJ+L7/v4n/xNZsvg7SP+et5/3+X/AOJrqWHm+hzPEwXU5LTbbSr+O4/tDUPszrJAse6RFDI0m2Q4KksVXkAYA6njq+fR/DCQK66yzO0yrt3Rj92ZgueV+8I8sc4GeeBkVuyeDtI/v3n/AH+H/wATVV/CWlf37z/v8P8A4mn9TqsX12kjAbR/D3mfPqf/AC0kT5ZEPAlKqc7RwV2tnAzyR0rnr2C3hjt/s77t0IaT5gdrEDIwAMYORjk8Z7127+FdK/v3P/f4f/E1C3hTSP8Ap5/7/D/4mqWBrCeYUTzxxTRK6Js3ts+8y9sjvivQT4R0b/p5/wC/3/1q0J/h94ehgsn+0Tfv4d7fvQNh4+XOf9rvjp+U1MPUhKMZbvb5DjjaL2Z51Z3jpJX1B8IdXfUvBMMUrbmtGMIP+yCdo/AV49N4G8PRWlxKtxJviVyq+f8AexjB/HJOPbr6d5+zzO0vhvVg/wDBdL+qA1y4im4LU6qNaNT4T2RjxXzTb3afEHxzd63qb7tPiy0Ub9FhBwiY7ZHzN6nNfQ2uS+T4f1KX+5ayt+SE18ueH5XtvD935Xy/6PH/ADI/rXPA2kd9qXxESz/0LSbeJYovlX5QBx6Csc/ETV/78X/fsVw/nUeb/n8K15UTc7b/AIWBq/8Afi/75Fb2geJdQv8AbLdzM27d5VvbKvmOFGWYlsKqjgFmIGSBnkZ8r86tNNXl074f394n/Hw9/HYK3PyoInlHf+82fwX0qZaDR7DJ4m0pJPs+xvN/hVdQg3sfQBmC5/GuZ13xTqWmyb7S482LdsZZIwskTcHaw+hyCOCCCMggnxq60e6fRv7UuJZG/drL5jfcbc2Aqnuw5yO2K6F7yV/CugXDtue5WaGRmzkiF12Hr1xIwz3wPSoW5TOtHj/Vf+mX/fIqRfiLqSfwRN/wEVwnm0ebWvKiLnq1n4u03xJA+m6tYxfvV/iXIb6ehrA8F6hL4K+J8WnxS/8AEvvphbTL2feP3Tf7wZlGfQt61xsNw6To6P8AOrVp3szf8Jfpsu/5lu7Nv/H1NJxHc+rqKKKwLCiiigAooooAKKKKACiiigDzX4lz7J1i/wCnU/qW/wDiTUVxP+8eofikf+JinvaqP/HpKCm+SX59u1S/5cD9SB+NepgkuVtnl4+VmkitLLVKV60orV5vm+zyMqxtK21vvYB2jgcAsMc++OlZ81u3zSqjeUrHbuYZxnGcd+SASBjJr0oTjex5M3JK5RlaqcrVomxnfZtT72WX5lHABJJyRgYVuTgcHnimnR79vu2sjdV+XkcdeR2756YBPY10qdNbyX3nJJ1HtF/cYkhqE761xpV08creT8sTMrfMByoywwTyQOcCk/sq6adYFt2adv8AlmuCfoQDwfY81uqtL+ZfeczdR/Zf3GPh6XD1srpM/wA8X2WTz/MRF+YAZflRjvkdMH60Lod++7yrR5FXHzRsGHIyCCCQRjuD7dan21LuvvDkq9Iv7jDmZ/Il/wCuZ/ka679nH/kXNa/6/F/9AFc1PD+4l/65n+Rrpf2cv+Rc1v8A6/F/9AFePnO8T6DIpc0Z/I9W8S/8iprH/XlN/wCgGvl7Rf8AkW9Q/wCveL/0KvqHxL/yK2r/APXlN/6A1fLujn/im9S/69Y/4v8AbrxoHuSMXzKPMqvu/wA7qN3+d1bkljzKsWOpWS297ouseYul3zJL9ohXc1tOmQrgHqCCVYdSMY5FZ+7/ADupsp/dv8m75flXdUyV0Cdi1Lonh3hU8ZrLAvzbfsMqkeuFYgE/Q1LqGp29++n2un27QaVpsJig8z70rMcvI2B1Y447ACvVdT8E+D7fwPqV/aQwNcQ2G+CTzPm8wR5DZ6k57ZOc9DXju7/O6ogr6lNljzKN1V93+d1G7/O6tSS1G/7xP96tnUZkh123uH+5FJau3rgbWOPwFc9Gf3if/FVp66f38v8Auxfxf7IpMD7EooormNAooooAKKKKACiiigAooooA8m+LB/4mVv8A9cY//QpKmDtDJL8ituXDbs9NwPYjuoqr8XT/AMTGyH95Y/8A0KStKGFZb1Ym3bWkC/KwHU4zyDXp4Jr2crnh5q2pwUd3cpFz5LKy/N5XlIyqB1kEhz6dxx7cVFLLK0CwNt2xrheo/iJ5Gduck84z78nNy3RZk3yqypt3NL5gAQ4yoxt5JPGMg02G2R5F3v8AuuN7Kpzz2GepP5dT0BrvUqSvfpqeLOVeVrPfQzzK/wDzwhb92Im3b/nUKFGcHjgD7u3nrmk+0XHz/wCq+Zi7fL67eMdMAIBj0JFan2SPe0W0SSeYUSMzrGWHQEAgkkn0xUa21VB0ZX0OarPEwSd9+xSnkaaBE+VX/e7tq9N+AwXOcAgDPc85Jyckk1xLJ5vlQKyyO67Vb5S+cnlj3JPrnHYADRFrS/ZKpKkuhPt8Q+vYykkuIduyKD5di/dPOxCi7sHJ+Vj0x0GMVGJLhH3IsfyshVdpwuxSFXrnGGbvnPOc1sG0qNraqSpPoL2uIX2jmLu2/cXDbFX92zfKuB0PQdhVv9nNsaJqqetzn8kT/Gr97bf6Dcf9cW/9BNZ/7Of/ACBtT/6+D/6BHXn5pK/Ke/w8moVL91+p6v4tlaHwdrUq9VsZj/44a+W9MbZ4f1D/AK94/wD0Ovp7xx/yIWv/APYPn/8AQDXy/p//ACAr3/r3j/8AQ68uB9BIw80uajorcgkz/vUbqn0/TrrVZ3gtFRmSMytukVAFHUksQAOnf36AkWYfDutXMEVxFZStFLbtdRt5ifNEpUFsbs9XX5cbjuGAaV0gs2UTNL5ezfLsX+Hccfl0puavXGharbRyyy2+1YpGRm+0RHlE3sBhvmAUg5XIwRzyKVvD2rrJseybf5nk/wCsj+8JBHt+9x87BfTqegJC5kFmUM0bv96iWGWGR4pfvL/dkVhzz1UkH8DUdMCaM/vE/wB6tHxEf+Pr/rnH/wCgCsuL/Xp/vVpeIut5/wBc4/8A0AUmNH2VRRRXMahRRRQAUUUUAFFFFABRRRQB5F8Y/kutKYfeaRV/DLf4mtVPlnVlbaytlW44OevNZHxoP+laJ/13T+bVPLrlqk7rsZvmPzdEY/Xk498V6eCTdOVjwM3TdWnb+tiV9Qsra4WyluIF2qWXcvC9A3zYxnGOOvFWo2ZdjxXTL8oZfLkKg+mccH8a81ubGX+0riCZdl0zF9vXfn5htPfIOR65/Cuq0TWrfTfBK3Vxul8qZ4VjXq2BuAz2GCefpXNDHwd7vRb6bH0uZ8JRo4WnVwc3ObaVu9+qOlXzN+7zd0md+5sFsnnPPv65Ax0p6Q1y+meObe8n/wBLt1tot2GbzN2z3JIGR+Vdjay29zu+zyxS7fvbWzt+orpoYqlVTdN3PlcxybG4CcYYqNr7ap37jUgqUW9XEhqdYK0lVMYYUyzbVE9rW8ttSPZVKxBo8DdHI6hb7LG4/wCuLf8AoJrA/Zy/5FzVf+vz/wBkSu31a12abd/9cZP/AEE1w/7OX/It6r/19/8AsiVz4upzWPQyql7JTXoereJokm8K6xHKiujWUwZW5BGw9RXyjph/4kV7/wBesf8AD/tV9Y+If+Ra1X/rzm/9ANfJmmf8gK6/69V/9CrmgenIxc/520f5+7R8/wDlqK3Mizp2oXGlX0V7aeUtxE26NmhV9p6ggMDgjHUc/rV628T6xZ+V9nu9qRxhI/3KnCgRDbyOn+jxZ9cH+82ciik0mVdmqPEepeRLFvg2SyCWbdaoS5CFMMccrtJGPc+ppv8AwkOq7932tv8AXCf5owdziQyAnI5+ZmOOhzzwBjLpaOVdhczJ7y8lv7t7q42tK2N37vA4AAAA6AAAfhUGf87aP8/eopiuPi/1if7392t28RZtdSKVFaKWa3Rl2/eB2gj8jWFD/r1/3q3rn/kYF/6+Lf8AmtSxo+v6KKK5jcKKKKACiiigAooooAKKKKAPGvjcB5+h7vufaFDfT5uaoanA9nJsf+L5o27OD3B71c+Ov39D/wCvhf8A2atbwpPLc2V1C/zRRyYXdyMnkjn8KipnUcss6kbxd723MsRk7x1CVWMrSi1vs0yppWmWt/YWt/fOu5V2RSMwHAZivXvz+lV/HP8AZum+G0t/s6xXE9wZYVhUKGO3DM2PYj8dvasLxXZ29zq1xcXdwqyxMUjhboiDhQoH3RjB985rmbqzuHS1ihu45IvM2RQ+YSELHsP4QTjP59qwqZNiJSljadTmU7tq2lnqreaLyfOqcMXSoV21GDte73X6EFrbS390lrEyq0rbdzenc++K7Gw8Q3v/AAkH/Evii2wM0S+Zk7+x3YPTI/QVxkMdxZztK/yyxZZVVsnI78dh1/Cren372epRXFvKzPu/eeZ/Hk/MD9ayp4qeCw04Rh78tm9j7HNcujneIhiKdRShTTsv73n8j6AsbpLmOJ3h8rzVH8WeT2/OtZIKwIJoHnS33qpXDeWrbpCo9EGWx74wM10KLJMf3qmNP+ee7k/Ujj8B+Z6DHJ8XjK1KTxSs76d7HxlTDQhL3Ryj+4m7/a7fn/hmsW71mTTp7zzYPNig2FtrD5A+cHJ7DFdGBtrFe2t7vVb+Bx/r4grsvBIAAHPtuOPrXpz5pfC9UaU4wXxLQNXiV9JunT7n2eRlb/gJrzD9nP8A5FvU/wDr8P8A6Ljr0aOTGh6lZMPntInT14KEgZ/P9K84/Zy/5FvUv+vw/wDouOtG21qRGCi3Y9c17/kXtS/69Jf/AEA18kaYf+JFdf8AXqv/AKFX1xrn/IA1L/r1l/8AQDXyNpp/4k1x/wBeq/8AoVVAJGNRS5/zzRn/ADzW5iJR8lLn/PNGaAEopc/55oz/AJ5oASilz/nmjP8AnmgB0P8Ar1/3q3Lk/wDE9/7eIP5rWLCf36f73vW1cH/ic/8AbxB/NaljR9h0UUVzHQFFFFABRRRQAUUUUAFFFFAHi3x0ZUuvDu/7n2xN30+bP6V0UV3af6ix8qBWY+Wq9H98Y4Pt1rmfjyfm0LP/AD9J/wCz1Y8LSNeatcJF92OPezdQpJIH4nn8qqrllHG0H7WN+XY3w+JVGTcnp+Bq6p4b0vWIN+o2itdqu1JVkZGxzgEgjI5PBzjNee+IdHi0qC3/ALPsZYk87dIzKx6dAWbOQTnjPau21fxjB4b1J7dLf7der/rGZtkcQIyAOCSxGM/Xr1FQW/iey8WfaE1O3W2VY8bd24MDnocA5zyPTGfp42Hvl1X2sqjdOLvyXbXbQ3x2WYqph3XoUrxl10vr1XU5LUruS5tIldIjsZX8vaCDtIJBz2459s1oWfgu/wDs6XH2Rfuh9vA3A8lRySD2rd0nw7BqU8tlaS22xo/3k3z7ih4OAR15HGcV6CulvsWLzVVdu33A9h6+/wD+quriSvWx3sp4BKUevl6nzmT08Vg5ThUcqdnttf18jgtOvrSOBIlRYlX7vl8Yx6Y6V6N4du3vtDguHO5juXd64YjP6VWn8KaJeT+fLp67/wCLYzKGx6gEA/jW1DDFbQJFCixxIoVVUYAA6AAdBXLl+X1cLUlKUrp9D6XGYyjiILki0+tzI8WteL4cvTZQySTCFiBG2DwCcDkc1wnhjVb1PDdvs2xXUTGJmXc4XDkdB8xyFzz689DXrBHHNcl4l0q1sbF7y0t4otp/f7WMa7T3YLyeccDrn2r1qMF7a8tnoebWqyVFqO61M7T5rr/iaNcSyqlzBMdrQ4BfBPBPIGCcLz9egrkv2c/+Ra1L/r7P/oEdXrqR4bG4uPs/zeTJtZbcRlcqf4pWyv1xVL9nT/kW9S/6/G/9AjrsxdNQlddTgy6vKrB826Z67rP/ACA7/wD69pf/AEE18g6cf+JNL/17L/6FX2Bq/wDyBr7/AK95P/QTXx/Yf8gd/wDr2X/0IVhTO6Zl/PRl6XFGK3MRM0ZpcUYoATNGXoxS4oAT56MvS4oxQA+H/Xr/AL1bFz/yGX/6+IP/AGWsmAfv0/3q1rgf8TZ/+viH/wBlqWNH2LRRRXMdAUUUUAFFFFABRRRQAUUUUAeK/HWNJZ/DqP8Ade+jRvodwNdxp+jWWjwNa6fbrBFu3N1Jc9NzE5LHAHJPauJ+OX/H94a/6/4f5tXpJv7P++3/AHzTeMpYZJVJJX7s48VTlOyR5b4s8E6zc65cXun263UVy29l8xFKHAyDuIyM9MVSt/D11oUnlajtSWVQ/wArZGB2z3Izz/k16+t9ZP8A8tf/AB009nsLmPZL5Uqfe2yLkfXBFeVi1hMTFqFVJvzR9DhOJMZSpxoVIpxiraaPQ5TwPA7TXV1t22+0RI3985ycfTA/Ou4SoY5bX+GWP0qYT2//AD1WujCzw2Goqmqidut0eXi68sVWdVq1+hMtSqarieL+/TxcRf361eMw/wDOvvM1Fk9Z2t3NrZ6HqFxfStFaxW7tLIvVVCnJHvjp71keIdEk1KyuG0rVZ9Pv2X93JuLR57blPQfTH49K8H1vWfHmiaPeeHPEqXF1ZXClFkusuM7gyskw5JBGQrE8cFQOAqeIhJ2TXydzbkXc2L3xLYW0Dy+bZtbsp/dxqrSuCOhZvm3HueMZ7Vv/ALOpP/CN6kf+ntv/AECKvMvC+lLr3iC3s5U3QpG9xcf7KIpJz7FsL9Wr0v8AZz/5FrUv+vxv/QIq3jOck+eV3+RnyU4/BFL0PYdV/wCQPe/9e7/+gmvjuxP/ABKX/wCvcf8AoQr7E1T/AJBN7/1wf/0E18bWh/4lX3v+Xcf+hVrSJmU8/wCxS5puaT/gdbmI7NGf9ik/4HSf8DoAfn/YpM03/gdL/wADoAdmjP8AsU2loAmhP7xP96tWU/8AE2f/AK+If5rWRF99K1HP/Eyf5/8Al4h/mtJjR9k0UUVynQFFFFABRRRQAUUUUAFFFFAHivx4/wCPjw7/ANf0X82raaeXzH+8vzbvz444x6/lWF8fv+Zf/wCvuP8A9mpxmuIXd33bNobdweh68d+np+vPzufU+f2fzJbsdFG7v/8AFcD/ADx/OpD5v8af8C59vTqK58XUqRxO77kaPcvy9sdPz/yMVJFqq+Y/zrsbHzbvXkdD6D9K+XeHmg5kb6XsUMab32pu27lYnnp17f8A1qkGp26f8tf93r7d/wAqwBqu+R9ny9fl3emCcfhj/PNOa/f+NIu+3/aHBBx3H+fpPsG9yuax0Kaok33Hb/eXPakm1DZA8v2vbtUs3y+gHXNYaTp5f7pPn+92PTvz7Z59/eo5JZZv72z/AGf4fUHr1Hbtjr6ipO++gc/c5DXPEXji51aeXTG1SOyaTbbLBaghlAADY2knPXnPX0rH1O7+JGvabLYXqXtxaNt3LNaxQjghlJIVT1A7130csvkO7orPz97gY7d/b9c1lyTXsP8AGq/w7uM8dcD8+pH9a+ioY1xilCmrrZkSqNkGkR2/hLQpbeG0X7bJbFZ7nvKSCSMnoATwB6DOa0v2df8AkXtS/wCvpv8A0CKsW91u9SC4+dZUaFt21s9iOemfwJxn89r9nT/kX9S/6+j/AOi469bK1UaqTqbtoIu57Fqn/IJvP+uD/wDoJr4xtm/4lS/9ch/6FX2fqP8AyDbr/ri//oJr4ttj/wAS1f8Arj/7NXsUwmQZozSZoFbmVgzS0lOFACf5/wA8UUuKdigQ0U4U/FKBQAsf30q9n/iZP/19Q/zWqkY/eJViM/8AEy/7eof/AEJaTGj7QooorlOgKKKKACiiigAooooAKKKKAPEP2gPuaH/F/pUf/s9Z0es2qQb0Tc65SNlYnkFWx6454PsRWj+0D/q9D/6+l9uz964kTxJI+xPlb7vbbk55GeD0/I15WaUlNRv5mcjq31hJo/N2fK0beXtwCpBHB9BjB/H1zVN5lf8A358t7LkA5GTjOAfxrAF8u99j/OuNvfgtjGO/XNEWofO/zt8qhl2/wjpnBH+7+teQsNbYzudIW2Wj7JWZv7qsfmwBn+Z/P3od2T7Pv3TpOu1mX+HHcAfhyeD7ZyOet9Qi/j+aJvu9iuGB/Hr37AjvVqadfP2/7IePc2dvqMjrnj/9dDo2eoXNWCa48x0+0Nv5bazYPGM5BI9T+vTk03+07h0/euyvx78nGDn14rGmv/3ibE+ZV2/ewOO/HTn+tQT3kr/Om3aqj93t+9x/9aj2Ce6EzYlunT79w0vXcu4454P1qlJffvHRItv+1Ixyv4j6D86yxNFNJ/d3LtbdyV6+vX86d9uXy9ife/utg8n2P4f/AFq1jQSEmS3j/wCiSvvb7rMu3ovynGOuO3HHfiu8/Z3G3QtU/wCvo/8AoEdeWXU7+RLEnyp5f949snjJ759K9Y/Z/TbpOq/9fX/tNK9vARtCXyNaZ65qH/INuv8Ari//AKCa+J4T/oMX/XP+tfbGof8AINuv+uL/APoJr4lgP+ixf9c/616FPcqYY/3qdilFOA/263IGhaULTwKcBQSNC04D/epwFOAoAYFp4WnAU8CkAxR+8p8Hz6l/29Q/+hLTsUyy/wCQsn/X3B/6GKGUj7TooorlNgooooAKKKKACiiigAooooA8O/aFH+iaR/12z+Svn+Yry+W/if5EdflU+nUYOQfz/Ovcfjdor6l4RivYl3tZSbj7A4BP6Y+pFfOD21KeFVdJt7GczcjkVJ9/mrs4/i+7inebv3/Ov3Qv3h2I6H2wawIbGW5kdIk3fkP5kehqKSB4XdHTa649D1GRyDjoaj+zl/N+BnY6hJovL3ptV+P4ge/oacZ9km7zV+b/AGh83PpWBpthFePL51x5FvBD500nllzjeqAKoI3Es68ZHc54q4LHSk+5qd43/cPX/wCP1k8ujfWX4D5Lmrc3EXz/ADr/AN9D+X+elVJL6J03o+3+Jl/u4I/Wn29npv8A0ELn/gViP6SmmvF5L7N6snDK3PQjI4PQ+o9c8nrTjl0f5vwDlKkl1F5n+tX/AGtrf57Gkim3/wAa/wDfX0/z+FaUUPnSbU2/N/tAfqeKHtv79a/UF3JaRmSzfu3b5W+UrtZvUV7n8CYtmk6x/wBfC/qg/wAK8hS3r3z4S6W1h4Ua4ddv2uYuv+6OAf51pGgqMXruawO4uY/NtZov78ZX8xiviG1/1EX/AFzP86+5K+LfE2mP4b8ZalpMqbUtLmRVX/pmx3IfoVZTV09yp7EAWlCc9d3vuA/UkAfiach3/wAf/j1SgVsYkAX94yMqLt/6aI38mNSBf881KB/u/wDAcD+VLtoXmN+QwLTgtPAp4WmIjCU8LTwKcBSAj21U0t1fXbVP+et/AP8Ax8VJqF4ltA6b/wB633V/u+9XPhro0uvfEDRrVVZkiuRdSt6JGQxJ9iQF/EUnsXFH2LRRRXMahRRRQAUUUUAFFFFABRRRQBBc20V5aS29wiywyqUdG6MDwRXhvif4M6lbzvPoTrd2rcrDIwWVPbJ4YfkfaveaSmpNbCaufJtx4G8TWjun9j6hH82N3llQ30PTvWdd+E9ah/1un3LP/s/O/wCS5NfYlFae2YuVHxqmg61D9zSdQXdwy/ZZAGGQ2CNvIyqnB7gelKdMv0+/o8//AIDyj+VfZFGKTq36Bynx4lrqX/QMnX/t3f8ArmrcGlak/wA/9n3zf9u7n+lfW2xf7q06j2r7BynytaaVqTyfurG5V/8AahZD/wCPAVoReG9fvJ9q6PqEjfd3fZ2I/wC+jwPzr6aoo9qxciPF/Dfwpv7idLjXkS0tV5a3Vg0r+xIyqj3BJ+nWvYoYo4YUiiVViRQqqvQAdAKmpKhyb3KSSFrzr4lfDC18cwJeW8q2eswLsjmZfklXqFfHOM9GHIyeD0r0WikM+PtU+G3jjQpmWXQbydS3+sso/PVvf5MkD6gVlnTNdi/4+NP1KD/f09/8K+1aK09oyeVHxOIbr+N51/7cWp6QzvIqLdy7mbaq/YXJY+gAHJr7VpMU/a+QcqPi0W100mxLiRnZtqr9hkzn0A29aPJuPu/a5d33dv2GT/CvtKil7RhynxcIL1/9VLct/u6e9S/2N4im/wBVp+sy/wDXPTXGfxxX2bRR7Rhyo+RNH+FHjPWpF8rRZ7RGPzTaj+5C+5B+b8lNfQnw8+Hdh4E06QJJ9p1K5A+03TLjgdEUdlH5k8nsB21LUuTY0rBRRRUjCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//2Q==</Picture>
</Mobile>
<Mobile ID='00283f5aa9c0c68c342c02977051757a7faae0ee70b086e628da7cc5baef2100' RegDate="26/05/2017">
<FullName>6600</FullName>
<Vendor>Nokia</Vendor>
<Date>2006</Date>
<Price>200SYP</Price>
<Weight>10g</Weight>
<Features>blutooth</Features>
<Notifecations></Notifecations>
<Picture>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</Picture>
</Mobile>
</Mobiles>
When I try to remove Mobile element depending on IDtextbox.text rather than static value in XPath expression it doesn't execute
I'm using Windows application in Visual Studio 2010, C# language
I need two examples:
1- Depending on an element inside the parent element.
2- depending on an attribute of the parent element, make sure that attribute is not an integer value, it's code.
Notice: I have searched for many websites and view multiple solutions nobody mention about using control value in XPath expressions.
Use xml linq which is better in this case than xpath
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = #"c:\temp\test.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILENAME);
List<XElement> mobiles = doc.Descendants("Mobile").ToList();
mobiles = mobiles.Where(x => (string)x.Element("FullName") != "Galaxy S-4").ToList();
mobiles = mobiles.Where(x => (string)x.Attribute("RegDate") != "26/05/2017").ToList();
doc.Descendants("Mobiles").FirstOrDefault().ReplaceWith(new XElement("Mobiles", mobiles));
}
}
}
thanks, Mr.jdweng
I solve the problem with this code
XDocument doc = XDocument.Load(#"Mobiles.xml");
List<XElement> mobiles = doc.Descendants("Mobile").ToList();
//mobiles = mobiles.Where(x => (string)x.Element("ID") == ID).ToList();
mobiles = mobiles.Where(x => (string)x.Attribute("ID") == ID).ToList();
doc.Descendants("Mobile").FirstOrDefault().ReplaceWith();
Best regards
I am writing a custom WebDAV server in C#. One of the client test programs I am using is NetDrive and it claims and appears to be a WebDAV compliant client. My problem is I am receiving a request on the server in the following format:
<?xml version="1.0" encoding="utf-8"?>
<propfind xmlns="DAV:">
<allprop/>
</propfind>
But other clients do this:
<?xml version="1.0" encoding="utf-8"?>
<D:propfind xmlns:D="DAV:">
<D:allprop/>
</D:propfind>
The two different namespace formats keep on fooing up my logic to look for the "allprop" element. My code looks a bit like this:
string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><propfind xmlns=\"DAV:\"><allprop/></propfind>"; //Hardcode to make all the StackOverflow users' lives easier
XPathDocument doc = new XPathDocument(new StringReader(xml));
XPathNavigator nav = doc.CreateNavigator();
XPathNodeIterator it = nav.Select("/propfind/*");
Now, I know I need to put in some type of namespace manager for the "DAV:", so I tried this:
XmlNamespaceManager nsman = new XmlNamespaceManager(nav.NameTable);
nsman.AddNamespace("", "DAV");
XPathNodeIterator it = nav.Select("/propfind/*", nsman);
But I'm getting no nodes in my iterator for the first XML file. It seems the default namespace isn't working like I thought it should.
What am I doing wrong? How do I query this XML for the existence of an allprop node when the namespace may be the default, or may be explicitly named?
You are using the wrong namespace in your code. Unforunalely the WebDAV specs use
'DAV:' as the namespace for WebDAV nodes and attributes (this seems to be caused by
a missunderstanding of the XML namespace mechanism).
I ended up looking for the namespace URI (DAV:) and adding it if it didn't exist. Then I just did a namespace-qualified SELECT and it worked in all my test cases:
XPathDocument document = new XPathDocument(xml);
XPathNavigator navigator = document.CreateNavigator();
//Get namespaces & add them to the search
bool hasDAV = false;
string davPrefix = "D";
XmlNamespaceManager nsman = new XmlNamespaceManager(navigator.NameTable);
foreach (KeyValuePair<string, string> nskvp in navigator.GetNamespacesInScope(XmlNamespaceScope.All))
{
if (string.Compare(nskvp.Value, "DAV:", StringComparison.InvariantCultureIgnoreCase) == 0)
{
hasDAV = true;
davPrefix = nskvp.Key;
}
nsman.AddNamespace(nskvp.Key, nskvp.Value);
}
if (!hasDAV)
nsman.AddNamespace(davPrefix , "DAV:");
XPathNodeIterator iterator = navigator.Select("/" + davPrefix + ":" + WebDavXML.PropFind + "/*", nsman);
i wish to parse following XML
<?xml version="1.0" encoding="UTF-8"?>
<product xmlns="http://products.org">
<make xmlns="http://camera.org">
<model>Camry</model>
</make>
<make xmlns="http://tv.org">
<model>Sony</model>
</make>
</product>
Code written to parse it
This is how i m writing Parsing Code
but in last i m getting null inxmlNode object. Can u tell what more to do .
You can't ignore namespaces in XPath.* The elements in your document all have non-blank namespace URI's.
Your question title indicates you're on the right track: you need to explicitly bind the URI's to prefixes using an XmlNamespaceManager, and use those prefixes in your path expressions.
This program is tested against your input document
using System;
using System.Xml;
public class XPathNamespace
{
public static void Main() {
XmlDocument doc = new XmlDocument();
doc.Load("test1.xml");
XmlNamespaceManager xnm = new XmlNamespaceManager(doc.NameTable);
xnm.AddNamespace("p", "http://products.org");
xnm.AddNamespace("c", "http://camera.org");
xnm.AddNamespace("t", "http://tv.org");
ShowNode(doc.SelectSingleNode("/p:product", xnm));
ShowNode(doc.SelectSingleNode("/p:product/c:make", xnm));
ShowNode(doc.SelectSingleNode("/p:product/t:make", xnm));
}
private static void ShowNode(XmlNode node) {
Console.WriteLine("<{0}> {1}",
node.LocalName,
node.NamespaceURI);
}
}
and it produces the following output
<product> http://products.org
<make> http://camera.org
<make> http://tv.org
Hope this helps.
(*) This doesn't mean you can't ignore the exact namespace in your XPath. For example, you could match
/*[local-name()='product']
But that's a workaround and illustrates that you still have to deal with the presence of a namespace somehow or other.
This is the best example for you. Please have a look.
http://www.codeproject.com/KB/cpp/myXPath.aspx
i am stuck with this small problem in my code.
I am trying to make small console application which will write into xml document.
I have used xmldocument and xmlnode concept.
ERROR i am getting is;
*An object reference is required for the non-static field, method, or property 'Write_xml.Program.give_node(System.Xml.XmlDocument)' C:\Documents and Settings\Administrator\Desktop\Write_xml\Write_xml\Program.cs*
code is okay except 1 error. I am not able to resolve it ,i want somebody to check it and correct it.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace Write_xml
{
class Program
{
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
XmlDocument lets = new XmlDocument();
string path = #"D:\XMLFile.xml";
doc.Load(path);
XmlNode Rootnode = doc.SelectSingleNode("Number");
XmlNode TakenOde = give_node(doc);
Rootnode.AppendChild(TakenOde);
doc.Save(path);
}
public XmlNode give_node(XmlDocument lets)
{
// On this xmldoc we will perform XMLNODE operations
// for creat new nods and append child nodes
//XmlNode RootNode = xmldoc.CreateElement("Root");
XmlNode PersonsNode = lets.CreateElement("Person");
XmlNode NameNode = lets.CreateElement("Name");
PersonsNode.AppendChild(NameNode);
NameNode.InnerText = "1st";
XmlNode AgeNode = lets.CreateElement("Age");
PersonsNode.AppendChild(AgeNode);
AgeNode.InnerText = "2nd";
XmlNode CityNode = lets.CreateElement("City");
PersonsNode.AppendChild(CityNode);
CityNode.InnerText = "3rd";
return PersonsNode;
}
}
}
please let me what small mistake i am doing.
You're trying to call an instance method, but without specifying an instance.
The simplest fix for this is to make the give_node method static.
I haven't looked at the rest of the code to see whether it's okay or not, although give_node should be called GiveNode to follow .NET naming conventions.
I'm getting a null reference exception whenever it tries to add the packages titles info and other attributes but the attributes exist and the proper package is selected
Heres the code:
private void categorylist_listview_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
XmlDocument LoadPackageList = new XmlDocument();
//Removes the text "Select A Category" and refrehes the form
packagelist_listbox.Items.Remove(SelectaCategory_listbox);
if (categorylist_listview.SelectedItem == WWW_listviewitem)
{
LoadPackageList.Load("www.xml");
XmlNodeList WWWPackageList = LoadPackageList.SelectNodes("/Packages/*");
int countthenodes = 0;
foreach (XmlNode WWWPackages in WWWPackageList)
{
//Cycles through all the packages and assings them to a string then adds it to the packagelist
countthenodes++;
PackageTitle[countthenodes] = WWWPackages.Attributes["title"].ToString();
PackageInfo[countthenodes] = WWWPackages.Attributes["info"].ToString();
PackageDownloadUrl[countthenodes] = WWWPackages.Attributes["downloadurl"].ToString();
PackageTags[countthenodes] = WWWPackages.Attributes["tags"].ToString();
packagelist_listbox.Items.Add(PackageTitle[countthenodes]);
}
Refresh(packagelist_listbox);
}
}
It Errors out at PackageTitle[countthenodes] = WWWPackages.Attributes["title"].ToString();
XML File:
<Packages>
<Firefox title="Mozilla Firefox" tags="www firefox web browser mozilla" info="http://google.com" downloadurl="http://firefox.com"></Firefox>
</Packages>
The Variables are declared
public string[] PackageTags;
public string[] PackageTitle;
public string[] PackageInfo;
public string[] PackageDownloadUrl;
At the very beginning of the file
Well, the first problem is that calling ToString() on an XmlAttribute isn't going to do what you want. You should use the Value property. However, I don't believe that's causing a NullReferenceException unless the data isn't quite as you showed it. Here's a short but complete program which works fine:
using System;
using System.Xml;
class Test
{
static void Main()
{
XmlDocument doc = new XmlDocument();
doc.Load("test.xml");
XmlNodeList list = doc.SelectNodes("/Packages/*");
foreach (XmlNode node in list)
{
Console.WriteLine(node.Attributes["title"].Value);
}
}
}
That displays "Mozilla Firefox" with the XML you gave us.
Options:
Your real XML actually contains an element without a title attribute
Perhaps PackageTitle is null?
It would help if you could produce a short but complete program demonstrating the problem. Ideally it should avoid using a GUI - I can't see anything here which is likely to be GUI-specific.
If you could tell us more about PackageTitle and how it's being initialized, that would help too. How are you expecting it to just keep expanding for as many elements as you find? Or is it an array which is initialized to a larger size than you ever expect to find elements?