開発環境:Visual Studio2013, .NET Framework4.5, C#
Microsoft officeのアドインを開発しています.
Office側で作成されたXmlファイルの一部を読み込む部分があるのですが,XMLの親子関係のある部分のノードの読み込みでつまづいています.
[XMLファイル側]※タグ名・innerXML等は一例です…
<XMLFILE> <name>佐藤</name> <age>15</age> <food>汁物</food> <name>佐藤</name> <age>13</age> <food>主菜 -<material>肉</material> </food> <name>佐藤</name> <age>15</age> <food>副菜 -<material>にんじん</material> </food> </XMLFILE>
上記のXMLファイルにおいて,<food>は子要素として<material>を持つことがあります.ただし,foodで終わる場合もありますし,子要素を持つこともあります.
このような条件において,
・<food>で終了した場合は<food>タグの中身
・<material>で終了した場合は<material>タグの中身
のみを取出して配列に入れたいです.
(この例だと,汁物,肉,にんじんの3つが取れればOK)
現在,XMLReaderを使用してファイルを読み込んでいます.
Xmlreaderの生成は省略します. while(reader.Read()) { if (reader.Name == "food") { XmlReader subReader = reader.ReadSubTree(); subreader.ReadStartElement("food"); while(subReader.Read()) { if (SubReader.Name == "material") { materialInnerXml.Add(subReader.ReadString()); subReader.Close(); } } foodInnerXml.Add(reader.ReadString()); reader.Close(); }
実行すると,特にエラー等はでないのですが,取得されるノードと取得されないノードがあります.取得されないものは空白となって出力されます.
取得されるタグ・されないタグについてなにか法則はあるかと調べてみたのですが,特に違いはないようです.
わかる方,いらっしゃいましたらご指導よろしくお願いいたします.
また,何か足りない情報等ありましたらお伝えください.

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/26 03:56