我有这样一段代码,当用户单击按钮时,它将XML文件的属性加载到字符串变量中:
public void Button1_Click(object sender, EventArgs e)
{
XDocument doc = XDocument.Load("C:/Structure.xml");
Visit(doc.Root);
}
public static void Visit(XElement element)
{
string siteURL1 = element.Attribute("URL").Value;
string siteTitle1 = element.Attribute("siteTitle").Value;
string siteDescription1 = element.Attribute("siteDescription").Value;
string siteTemplate = element.Attribute("siteTemplate").Value;
string name = element.Attribute("type").Value;
Execute(name, siteURL1, siteTitle1, siteDescription1, siteTemplate);
}但当我部署when部件并单击按钮时,我收到"NullreferenceException未由用户代码处理/对象引用未设置为对象的实例“错误。在以下位置:
string siteURL1 = element.Attribute("URL").Value;" 知道我可能做错了什么吗?
这个结构看起来像这样:
<root>
<level1 name="level1A"
type="Private"
template="3
siteTitle="Private"
siteDescription="Private Site"
URL"private">
<level2 name="level2A">
<level3 name="level3A">
<level4 name="level4A">
<level5 name="level5A">
<level6 name="level6A">
<level7 name="level7A">
<level8 name="level8A"></level8>
</level7>
</level6>
</level5>
</level4>
</level3>
</level2>
</level1>
</root> 发布于 2012-01-04 06:59:40
我认为有两件事是错的.
object element为null
或
element的attribute URL不存在
试试像这样的..。
var url = element.Attribute("URL");
string siteURL1;
if(url != null)
{
siteURL1 = url.Value;
}发布于 2012-01-04 06:58:50
element.Attribute("URL")为空。您需要检查您的数据(XML)以了解原因。您的代码假定某个结构似乎不正确。仔细查看传入的元素。
发布于 2012-01-04 07:02:49
进行一些验证,以确保XDocument doc = XDocument.Load("C:/Structure.xml");之后的doc不为空。部署后,您是否有权访问该位置上的XML文件?
https://stackoverflow.com/questions/8719830
复制相似问题