-2
<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>

上記の xml ファイルを読み取って、曜日と時刻を取得し、取得したデータを変数に代入する必要があります。c# を使用してこれを達成するにはどうすればよいですか?

4

2 に答える 2

1

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();
        }

ご不明な点がございましたら、お気軽にお問い合わせください..

于 2013-02-27T06:30:01.633 に答える
0

何を試しましたか?

クラス XDocument を見てください。そこで次のようなことができます

XDocument document = XDocument.Load(XMLPATH);
IEnumerable<XElement> day = document.Elements("Day");
于 2013-02-27T06:09:57.287 に答える