我有一個相對較大的xml文件。即使我只需要文件的某些部分,客戶端也會發給我一個完整的文件。因此,我想解析出我需要的部分並處理這個新文件。如何複製xml文件的部分
這裏是XML
<Activity>
<RetailFormat>ABC</RetailFormat>
<FeedDate>2014-02-06 21:01:10</FeedDate>
<ActivityId>665507</ActivityId>
<ActivityTitle>ABC 3.9.14 Hawaii </ActivityTitle>
<StartDate>2014-03-09</StartDate>
<EndDate>2014-03-15</EndDate>
<StartTime>00:00:00</StartTime>
<EndTime>23:59:59</EndTime>
<JANumber>0</JANumber>
<PlanItemNo>0</PlanItemNo>
<ChannelType>Circular</ChannelType>
<Version>
</Version>
</Activity>
我有我需要尋找ActivityIDs的列表的一部分。如果ActivityID在列表中,我想將整個Activity複製到一個新文件中。如果沒有,我想轉到下一個活動。實際上是從開始標記開始向下數百行。除了手動解析部分之外,我還沒有使用過xml。我不知道是否有程序化的方式來處理這個問題。另外,我需要大概15K行文件。該文件中有130萬行。通過限制處理文件的大小,我可以大幅縮短處理時間。
我在尋找最有效的方法來解決這個問題。手動操作我很好,但我寧願儘早限制它。
這裏有一個大'如果'但'如果'文件被格式化,即。每行一行,而不是一個巨大的無格式文本/ XML文件,那麼你可以把它看作是一個普通的文件,並使用流讀取器,直到你找到一條符合你要找的內容的行,這將節省內存併成爲非常快。選項二,linq-to-xml並遵循以下示例:http://msdn.microsoft.com/en-us/library/vstudio/bb387013(v=vs.100).aspx –