2012-04-17 4 views
0

안녕하세요 Evening StackOverFlowers,
Visual Studio 2010을 통해 XML로 코딩을 시작했습니다. 간단한 솔루션 인 것처럼 보이지만 아직 해결 방법이 있습니다. 나를 도망칩니다. 개체 참조가 설정되지 않았기 때문에 오류가 발생하지만 설정하지 않은 내용은 표시되지 않습니다. (여기 오류 : http://i.imgur.com/CVaxY.png)개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

내 코드 숨김 : 그 말의 문제

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"; 
    } 
    } 
} 

이다 : 나는 모든 당겨 할거야이를 읽어 알고

int intDVDID = new intDVDID 

당신의 나의 미경험에 머리카락을 풀고 이것을 해결하는 방법을 이해하지 못하는데, 나는 당신의 시간과 당신의 인내심을보고 고맙게 생각합니다.

안부, 로라 :

편집 : 가 여기 내 XML : 그것은 null로 할 수 있습니다 귀하의 selectedDVD처럼 찾고

<?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> 
+0

'dvd.xml '은 어떻게 생겼습니까? – climbage

+0

XML을 편집하도록 편집되었습니다. 질문 클라이 빙에 감사드립니다! –

+0

이 오류가 발생하면'id'의 값은 무엇입니까? – climbage

답변

1

은 확인하기 위해 일부 널 (null) 검사를했습니다.

if(selectedDVD != null) 
{ 
} 

편집 : 댓글에 대한 귀하의 질문에 대한 답변입니다. 다음은 몇 가지 예제 코드입니다. 나는 귀하의 경우는

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    
+0

고맙습니다. 나는 이것을 지금 시험 할 것이다. 양해 해 주셔서 감사합니다. –

+0

좋아요, 그럼 일부 Null 검사가 튀어 나와서 같은 결과가 나옵니다. null 체크를 할 때, 나는 단지 이런 식으로 할 것입니다 : 'if (selectedDVD! = null) { selectedDVD = rootNode.ChildNodes [ intDVDID - 1]; }' –

+0

브라이언 감사합니다. 진심으로 도와 주셔서 감사합니다. 너는 별이야! –

0

Pleaase 당신의 쿼리 문자열은 당신이 당신에게 널 참조 exeption의 원인이 비어 있지 않은지 확인 앞으로이를 사용할 수 있습니다 매우 간단 보인다하더라도하는 XPath에 던졌다 얻을.

if(Request.QueryString["id"]!="") 
{ 
    intDVDID = Convert.ToInt32(Request.QueryString["id"]); 
} 
+0

정말 고맙습니다. 너는 도움이 환상적이었다. 일부 문제를 해결할 수 있도록 도와주었습니다. 매우 감사! –

관련 문제