2012-06-26 41 views
-4

爵士,需要切片內容的XML文件

我做任務從XML file.I閱讀其他節點的內容,但在第一個內容是以下形式獲取內容。

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

感謝

+0

你要切什麼內容?你如何讓他們分裂?提供更多細節。 – nunespascal

+0

好吧,先生,我是這個網站的新手。 – chetan1539

+0

我想獲取字符串中的內容,例如ID =「」,POSTING_DATE =「」和POSTING_TIME =「」,以及ARCHIVE_DATE =「」 – chetan1539

回答

1

嘗試這些。創建XmlDocument對象以保留xml文件:

XmlDocument xDoc = new XmlDocument(); 

接下來使用load方法從指定的流中加載XML文檔。

xDoc.Load("pathToYourXmlFile.xml"); 

使用GetElementsByTagName()方法獲取與指定名稱匹配的元素集合的地址。

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

XmlNodeList表示指定節點下的節點的有序集合。

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