2010-03-30 8 views
-2

J'ai un fichier XML comme indiqué ci-dessousDécouper le fichier 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> 

Question - Basicall je dois retirer le bloc

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

qui n'a pas <M> Valeur

+5

De quoi parlez-vous? –

+0

Quelques informations supplémentaires seraient utiles. Voulez-vous enregistrer la sortie ou simplement renvoyer les éléments T qui n'ont pas de valeurs M à afficher? – Myster

+0

Fondamentalement, je veux couper ce fichier XML en supprimant la balise T et ses balises enfant qui n'a pas de valeur dans M Tag – Sathish

Répondre

0

Vous voudrez peut-être pour jeter un oeil à Linq-to-XML

Vous pourriez demander pour tout XElem ents contenant un élément M vide et supprime ceux-ci de leur élément XML parent.

Prenez par exemple:

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

Pour .Net 2.0, utilisez XmlDocument.

+0

J'utilise le framework DotNet 2.0 si Linq travaille ici ????? – Sathish

+0

Ow merde, non ce ne sera pas :(Désolé, je supposais que vous utilisiez. Net 3.5 – Webleeuw

1

Chargez le document entier dans un XmlDocument (ou XDocument), sélectionnez des nœuds avec un XPath comme /T[not(./M)] et supprimez-les.

+0

J'utilise DotNet 2.0 cadre pouvez-vous s'il vous plaît aidez-moi avec un code – Sathish

+1

XmlDocument est une classe. Net 2.0, s'il vous plaît regardez-le sur MSDN. – Webleeuw