-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

You can do this with the following code:

        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

试试这些。创建 XmlDocument 对象以保留 xml 文件:

XmlDocument xDoc = new XmlDocument();

接下来使用 load 方法从指定的流中加载 XML 文档。

xDoc.Load("pathToYourXmlFile.xml");

使用 GetElementsByTagName() 方法获取与指定名称匹配的元素集合的地址。

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

XmlNodeList 表示指定节点下的有序节点集合。

于 2012-06-26T05:35:42.630 回答
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 回答