uForum.uz

uForum.uz (https://uforum.uz/index.php)
-   Разное/IT (https://uforum.uz/forumdisplay.php?f=398)
-   -   Требуется помощь по XML (https://uforum.uz/showthread.php?t=8699)

Marat Timergaliev 11.04.2009 11:30

Требуется помощь по XML
 
плиз кто нибудь помогите мне...
вот такая ошибка при регистрации пользователя с помощью эксэмэлки

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:


Line 52: n.AppendChild(n6);
Line 53: XmlNode uzel = x.SelectSingleNode("/users");
Line 54: uzel.AppendChild(n);
Line 55: x.Save("C:\\Documents and Settings\\marik\\Мои документы\\Visual Studio 2005\\WebSites\\WebSite1\\users.xml");
Line 56: Session["name"] = TextBox1.Text;

Marat Timergaliev 11.04.2009 11:34

а еще более точнее ругается на 54 строчку

Timur Naimov 11.04.2009 12:42

Цитата:

Сообщение от Marik (Сообщение 203397)
Line 52: n.AppendChild(n6);
Line 53: XmlNode uzel = x.SelectSingleNode("/users");
Line 54: uzel.AppendChild(n);
Line 55: x.Save("C:\\Documents and Settings\\marik\\Мои документы\\Visual Studio 2005\\WebSites\\WebSite1\\users.xml");
Line 56: Session["name"] = TextBox1.Text;

Информация очень скудная, но как я понял проблема в объекте "uzel". Приведенное Вами исключение возникает есть объект объявлен, но не инициализарован, т.е. "uzel = null". В этой строчке обращение происходит к двум объектам - "uzel" и "n". Учитывая, что к "n" Вы удачно обращаетесь выше, проблема в том что uzel равно null.
Цитата:

SelectSingleNode - The first XmlNode that matches the XPath query or null reference (Nothing in Visual Basic) if no matching node is found
Другими словами "x.SelectSingleNode("/users");" ничего не находит в xml документе, соответственно возвращает null, соответственно при попытки обраться к null происходит исключение.
Выложите свой xml файлик

Marat Timergaliev 11.04.2009 20:46

вот я убрал вообще 53 и 54 строчки, но почему то не добавляются пользователи в ЭКСЭМЛ, хотя когда захожу обратно в вижуал студию мне говорит что мол в эксэмл было что то добавлено, и спришивает обновить и добавить туда??но там ничего нету вообще

Erkin Kuchkarov 11.04.2009 21:20

a posle izmenenya xml zapisivaete ili prosto menyaete DOM v pamyati?
cod i xml v studiu

Marat Timergaliev 12.04.2009 16:15

вот код на кнопке для добавления в XML я убрал выше упомянутую строчку 53-54
XmlDocument x = new XmlDocument();
x.Load("C:\\Documents and Settings\\marik\\Мои документы\\Visual Studio 2005\\WebSites\\WebSite1\\users.xml");
XmlNode xy=x.SelectSingleNode("/users/user[name='"+TextBox1.Text+"']");
if (xy == null)
{
//this means that we haven't gotten a
//match for the name so let's create a
//new user element and add it to the
//tree
XmlNode n = x.CreateElement("user");
XmlNode n1 = x.CreateElement("nik");
n1.InnerText = TextBox1.Text;
n.AppendChild(n1);
XmlNode n2 = x.CreateElement("name");
n2.InnerText = TextBox2.Text;
n.AppendChild(n2);
XmlNode n3 = x.CreateElement("lastname");
n3.InnerText = TextBox3.Text;
n.AppendChild(n3);
XmlNode n4 = x.CreateElement("sorename");
n4.InnerText = TextBox4.Text;
n.AppendChild(n4);
XmlNode n5 = x.CreateElement("e-mail");
n5.InnerText = TextBox5.Text;
n.AppendChild(n5);
XmlNode n6 = x.CreateElement("password");
n6.InnerText = FormsAuthentication.
HashPasswordForStoringInConfigFile(TextBox6.Text, "sha1");
n.AppendChild(n6);
// XmlNode uzel = x.SelectSingleNode("/users");
//uzel.AppendChild(n);
x.Save("C:\\Documents and Settings\\marik\\Мои документы\\Visual Studio 2005\\WebSites\\WebSite1\\users.xml");
Session["name"] = TextBox1.Text;
FormsAuthentication.RedirectFromLoginPage(TextBox1 .Text, false);
}
else
{
Label2.Text = "this user already exists";
}

Marat Timergaliev 12.04.2009 16:17

а вот и сам ЭКСЭМЛ, но только почему то не добваляется сюда ничего, скажите как правильно делать???
<users>
<user>
<nik>
</nik>
<name>
</name>
<lastname>
</lastname>
<sorename>
</sorename>
<e-mail>
</e-mail>
<password>
</password>
</user>
</users>

Marat Timergaliev 12.04.2009 16:19

жесть надоело все, почему не получается, аа?? вот проблемка есть, решится, сразу другая, ваще

Erkin Kuchkarov 12.04.2009 16:29

Цитата:

Сообщение от Marik (Сообщение 203702)
XmlNode xy=x.SelectSingleNode("/users/user[name='"+TextBox1.Text+"']");

"name" определен как аттрибут похоже... Ошибся Я
<users> нужно определять "." (так как это root)... ща покапаюсь у себя в старье

Но все же конструкция должна быть следующей:
XmlNode xy=x.SelectSingleNode(".[user/name="+TextBox1.Text+"]");
(проверить не могу - васик не понимаю)

Marat Timergaliev 12.04.2009 21:22

Цитата:

Сообщение от Erkin Kuchkarov (Сообщение 203705)
Цитата:

Сообщение от Marik (Сообщение 203702)
XmlNode xy=x.SelectSingleNode("/users/user[name='"+TextBox1.Text+"']");

"name" определен как аттрибут похоже... Ошибся Я
<users> нужно определять "." (так как это root)... ща покапаюсь у себя в старье

Но все же конструкция должна быть следующей:
XmlNode xy=x.SelectSingleNode(".[user/name="+TextBox1.Text+"]");
(проверить не могу - васик не понимаю)

не это не помогло, ругается теперь на вашу строчку мол не правильно написано


Текущее время: 00:27. Часовой пояс GMT +5.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
OOO «Единый интегратор UZINFOCOM»