需要在xml文件中切片内容

时间:2012-06-26 05:23:06

标签: c# xml

爵士

我正在执行从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">

由于

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

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

XmlDocument xDoc = new XmlDocument();

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

xDoc.Load("pathToYourXmlFile.xml");

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

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

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

答案 2 :(得分: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();