XML を文字列からロードするコンソール プログラムを提供しています。ファイル パスを提供するファイルからロードすることもできます..(そのステートメントについても言及しました)。
これはあなたの XML です:
string xml = @"<testxml><Day>
<Monday>true</Monday>
<Tuesday>false</Tuesday>
<Wednesday>true</Wednesday>
<Thursday>false</Thursday>
<Friday>true</Friday>
<Saturday>false</Saturday>
<Sunday>true</Sunday>
</Day>
<Time>
<dateTime>12:21</dateTime>
</Time>
</testxml>";
を宣言し、XmlDocument()
xml をロードします。
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xml);
//xDoc.Load(xmlpath);
これで、xml ドキュメントの準備が整いました。xDoc.Load(xmlpath);
ファイルパスからロードできます。
アクセスしたいノードの xpath を提供します.. nodeList(SelectNodes) を使用するか、1 つのノードのみを使用します..
私は日のためにselectNodesを使用しています..そしてdatetimeのためにselectSingleNodeを使用しています。
string xpath = "/testxml/Day/*";
XmlNodeList xNode = xDoc.SelectNodes(xpath);
foreach (XmlNode node in xNode)
{
string day = node.LocalName;
Console.WriteLine(day + ", value=\"" + node.InnerText + "\"");
}
上記のコードは、ノード名 (つまり、日とその値 true/false) を出力します。
それでは、日時の値を出力しましょう。
xpath = "/testxml/Time/dateTime";
XmlNode node1 = xDoc.SelectSingleNode(xpath);
Console.WriteLine(node1.LocalName + ", value=\"" + node1.InnerText + "\"");
これは、XML DOM で遊ぶ簡単な例でした :)
コード全体:
static void Main(string[] args)
{
string xml = @"<testxml><Day>
<Monday>true</Monday>
<Tuesday>false</Tuesday>
<Wednesday>true</Wednesday>
<Thursday>false</Thursday>
<Friday>true</Friday>
<Saturday>false</Saturday>
<Sunday>true</Sunday>
</Day>
<Time>
<dateTime>12:21</dateTime>
</Time>
</testxml>";
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xml);
//xDoc.Load(xmlpath);
string xpath = "/testxml/Day/*";
XmlNodeList xNode = xDoc.SelectNodes(xpath);
foreach (XmlNode node in xNode)
{
string day = node.LocalName;
Console.WriteLine(day + ", value=\"" + node.InnerText + "\"");
}
xpath = "/testxml/Time/dateTime";
XmlNode node1 = xDoc.SelectSingleNode(xpath);
Console.WriteLine(node1.LocalName + ", value=\"" + node1.InnerText + "\"");
Console.ReadLine();
}
ご不明な点がございましたら、お気軽にお問い合わせください..