【发布时间】:2015-04-04 05:12:26
【问题描述】:
我有以下方法:
public string GetReadersAsListXML()
{
StringBuilder sbXML = new StringBuilder();
sbXML.Append("<items>" + "\r\n");
string filePath = ConfigurationManager.AppSettings["RFIDScannerConfiguration"];
XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.IgnoreComments = true;
using (XmlReader reader = XmlReader.Create(filePath, readerSettings))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.LocalName == "add")
{
int ListenerNumber = 1;
string Key = reader.GetAttribute("key");
Key = Key.Remove(Key.Length - 3);
string Value = reader.GetAttribute("value");
if (Key == "Active")
{
sbXML.Append("<item>" + "\r\n");
sbXML.Append("<id>Listener" + ListenerNumber + "</id>" + "\r\n");
sbXML.Append("<attributes>" + "\r\n");
ListenerNumber++;
}
sbXML.Append("<attribute>" + "\r\n");
sbXML.Append("<code>" + Key + "</code>" + "\r\n");
sbXML.Append("<value><![CDATA[" + Value + "]]></value>" + "\r\n");
sbXML.Append("</attribute>" + "\r\n");
}
}
}
}
return sbXML.ToString();
}
我用来解析 XML 文件。
我想删除字符串 'Key' 的最后 3 个字符。
但是,我收到以下错误:
'Object reference not set to an instance of an object'.
我以前使用过.remove方法,方法和以前一模一样,效果很好。
我知道这是行:
Key = Key.Remove(Key.Length - 3);
导致问题,但为什么设置正确?
【问题讨论】:
-
检查是否(键!= null)