我将二维坐标保存在 XML 文件中,其结构类似于:
<?xml version="1.0" encoding="utf-8" ?>
<grid>
<coordinate time="78">
<initial>540:672</initial>
<final>540:672</final>
</coordinate>
</grid>
我可以打开 XML 文件并通过 XmlTextReader 读取它,但是如何专门循环坐标以检索初始节点和最终节点之间的时间属性和数据,格式类似于:
string initial = "540:672";
string final = "540:672";
int time = 78;
新代码:
我的新代码:
//Read the XML file.
XDocument xmlDoc = XDocument.Load("C:\\test.xml");
foreach (var coordinate in xmlDoc.Descendants("coordinate"))
{
this.coordinates[this.counter][0] = coordinate.Attribute("time").Value;
this.coordinates[this.counter][1] = coordinate.Element("initial").Value;
this.coordinates[this.counter][2] = coordinate.Element("final").Value;
this.counter++;
};
但现在我收到此错误:
“对象引用未设置为对象的实例。”
XML
<?xml version="1.0" encoding="utf-8"?>
<grid>
<coordinate time="62">
<initial>540:672</initial>
<final>540:672</final>
</coordinate>
...
<coordinate time="46">
<initial>176:605</initial>
<final>181:617</final>
</coordinate>
</grid>
跳过了一些坐标标签以适应,但它们都有时间属性和初始/最终子标签。
全局变量
uint counter = 0;
// Coordinates to be retrieved from the XML file.
string[][] coordinates;