2010-03-30 66 views
-2

我有一個XML文件,如下圖所示修剪XML文件

<NewDataSet> 
- <T> 
    <P /> 
    <C>1</C> 
    <M /> 
    </T> 
- <T> 
    <P /> 
    <C>1</C> 
    <M /> 
    </T> 
- <T> 
    <P /> 
    <C>1</C> 
    <M /> 
    </T> 
- <T> 
    <P /> 
    <C>1</C> 
    <M /> 
    </T> 
- <T> 
    <P /> 
    <C>2</C> 
    <M>44</M> 
    </T> 
- <T> 
    <P /> 
    <C>2</C> 
    <M>45</M> 
    </T> 
- <T> 
    <P /> 
    <C>2</C> 
    <M>46</M> 
    </T> 
</NewDataSet> 

問題 - Basicall我應該刪除塊

<T> 
    <P /> 
    <C>1</C> 
    <M /> 
    </T> 

不具有<M>價值

+5

你在說什麼? – 2010-03-30 09:46:18

+0

一些更多的信息會有幫助。你想保存輸出還是隻返回沒有顯示M值的T元素? – Myster 2010-03-30 09:50:15

+0

基本上我想刪除T標記及其子標籤不具備併購標籤 – Sathish 2010-03-30 09:55:03

回答

0

你可能想看看到Linq-to-XML

你可以查詢所有XElem包含一個空M元素的元素,並從其父元素中刪除這些元素。

採取例如:

from element in _yourXDocument.Descendants("NewDataSet") 
select element 
where element.Descendants("M").Value = String.Empty; 

對於.NET 2.0,使用XmlDocument

+0

值我使用DOTNET的2.0框架Linq的工作是否在這裏減磅此XML文件????? – Sathish 2010-03-30 09:52:44

+0

噢廢話,沒有也不會:(對不起,我是假設你正在使用的.Net 3.5 – Webleeuw 2010-03-30 09:54:11

1

將整個文檔加載到XmlDocument(或XDocument)中,選擇XPath類似/T[not(./M)]的節點並刪除它們。

+0

我使用DOTNET的2.0框架,可以請你幫我一個代碼 – Sathish 2010-03-30 09:52:17

+1

XmlDocument的是一個.NET 2.0類,請查一下在MSDN上。 – Webleeuw 2010-03-30 10:00:21