Обрезка файла XML - PullRequest
       12

Обрезка файла XML

0 голосов
/ 30 марта 2010

У меня есть файл 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> Значение

Ответы [ 2 ]

1 голос
/ 30 марта 2010

Загрузите весь документ в XmlDocument (или XDocument), выберите узлы с XPath вроде /T[not(./M)] и удалите их.

0 голосов
/ 30 марта 2010

Возможно, вы захотите взглянуть на Linq-to-XML

Вы можете запросить все элементы XE, содержащие пустой элемент M, и удалить их из родительского элемента XML.

Взять, к примеру:

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

Для .Net 2.0 используйте XmlDocument .

...