-4

様、

私はxmlファイルからコンテンツを取得するタスクを実行しています。他のノードからコンテンツを読み取りますが、最初はコンテンツは次の形式になっています。

<NEWSFEED>
<ARTICLE ID="665875" POSTING_DATE="25-Jun-2012" POSTING_TIME="06:00" ARCHIVE_DATE="18-Jun-2013">
<NEWS_TYPE>News</NEWS_TYPE>
<HEADLINE>Diabetes Can Make a Comeback After Weight-Loss Surgery: Study</HEADLINE>
</ARTICLE>
</NEWSFEED>

XMLの次の行からそれらのコンテンツをスライスしたい

<ARTICLE ID="665875" POSTING_DATE="25-Jun-2012" POSTING_TIME="06:00" ARCHIVE_DATE="18-Jun-2013">

ありがとう

4

3 に答える 3

2

これは、次のコードで実行できます。

        string x = "<NEWSFEED><ARTICLE ID='665875' POSTING_DATE='25-Jun-2012' POSTING_TIME='06:00' ARCHIVE_DATE='18-Jun-2013'><NEWS_TYPE>News</NEWS_TYPE><HEADLINE>Diabetes Can Make a Comeback After Weight-Loss Surgery: Study</HEADLINE></ARTICLE></NEWSFEED>";
        XmlDocument xDoc = new XmlDocument();
        xDoc.LoadXml(x);
        foreach (XmlElement element in xDoc.GetElementsByTagName("ARTICLE"))
            foreach (XmlAttribute attr in element.Attributes)
                Console.WriteLine("{0}={1}", attr.Name, attr.Value);
于 2012-06-26T05:46:44.847 に答える
1

ID = ""、POSTING_DATE = ""、POSTING_TIME = ""、ARCHIVE_DATE=""などの文字列でコンテンツを取得したい

LINQ to XMLを使用すると、次のことができます。

using System.Linq;
using System.Xml.Linq;

string xml = @"<NEWSFEED>
                   <ARTICLE ID='665875' POSTING_DATE='25-Jun-2012'
                            POSTING_TIME='06:00' ARCHIVE_DATE='18-Jun-2013'>
                       <NEWS_TYPE>News</NEWS_TYPE>
                       <HEADLINE>Diabetes Can Make a Comeback After Weight-Loss
                                 Surgery: Study</HEADLINE>
                   </ARTICLE>
               </NEWSFEED>";
XElement doc = XElement.Parse(xml);
var results = doc.Descendants("ARTICLE")
    .Select(d =>
        new 
        {
            ID = d.Attribute("ID").Value ?? "",
            POSTING_DATE = d.Attribute("POSTING_DATE").Value ?? "",
            ARCHIVE_DATE = d.attribute("ARCHIVE_DATE").Value ?? "",
        }).ToList();   
于 2012-06-26T05:44:35.083 に答える
1

これらを試してみてください。xml ファイルを保持する XmlDocument オブジェクトを作成します。

XmlDocument xDoc = new XmlDocument();

次に、load メソッドを使用して、指定されたストリームから XML ドキュメントを読み込みます。

xDoc.Load("pathToYourXmlFile.xml");

メソッド GetElementsByTagName() を使用して、指定された名前に一致する要素のコレクションのアドレスを取得します。

XmlNodeList newsFeed= xDoc.GetElementsByTagName("NEWSFEED");

XmlNodeList は、指定されたノードの下にある順序付けられたノードのコレクションを表します。

于 2012-06-26T05:35:42.630 に答える