前回(id:toburau:20080115)書いたプログラムでは、XMLファイルが想定したもの以外では正しく動作しない。ということでelementを確認しながら読み込む方法。
<?xml version="1.0" encoding="utf-8"?> <width>100</width> <height>100</height>
このようなXMLファイルからwidthとheightの値を取得するプログラムは次の通り。
int width; int height; XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; settings.IgnoreComments = true; XmlReader reader = XmlReader.Create("test.xml", settings); reader.Read(); while ( !reader.EOF ) { if (reader.IsStartElement("width")) { width = int.Parse(reader.ReadElementString("width")); } else if (reader.IsStartElement("height")) { height = int.Parse(reader.ReadElementString("height")); } else { reader.Read(); } } reader.Close();
IsStartElement()でelementがあるか確認し、存在していたらReadElementString()で読み込めば良い。