2010-03-15 7 views
1

Je suis d'édition élément XML avec le code XML suivant:élément XML avec LINQ to XML

<?xml version="1.0" encoding="utf-8"?> 
<!--Test XML with LINQ to XML--> 

<LabSerivceInfo> 

    <LabService> 
    <ServiceType>Copy</ServiceType> 
    <Price>1</Price> 
    </LabService> 

    <LabService> 
    <ServiceType>PrintBlackAndWhite</ServiceType> 
    <Price>2</Price> 
    </LabService> 

</LabSerivceInfo> 

Dim varServiceType = txtServiceType.Text.Trim 

Comment mettre à jour le ServiceType et le prix où ServiceType = varServiceType?

Répondre

0

Vous pouvez utiliser quelque chose comme ceci:

Dim el = (From x In doc.XPathSelectElements("//*") _ 
      Where x.Value = varServiceType _ 
      Select x.Parent).FirstOrDefault() 

Le code ci-dessus renvoie l'élément <LabService>.

Edité à ajouter:

Hé, je peux choisir le prix comme celui-ci avec l'état

Dim query = (From s In xElement.Load(theXMLSource1).Descendants("LabService") _ 
      Where s.Element("ServiceType") = "Scan" _ 
      Select s.Element("Price").Value).FirstOrDefault() 

Mais, je ne peux pas comprendre comment mettre à jour encore. Pouvez-vous partager du code à ce sujet?

Utilisation de votre échantillon:

Dim price = (From s In xElement.Load(theXMLSource1).Descendants("LabService") _ 
      Where s.Element("ServiceType") = "Scan" _ 
      Select s.Element("Price")).FirstOrDefault() 

price.Value += 1500 
+0

Hé, je peux choisir le prix comme celui-ci avec la condition Dim query = (De s Dans XElement.Load (theXMLSource1) .Descendants ("LABSERVICE") Où s. Element ("ServiceType") = "Scan" Sélectionnez s.Element ("Price"). Value) .FirstOrDefault Mais, je n'arrive pas à comprendre comment le mettre à jour. Pouvez-vous partager du code à ce sujet? – Narazana

+0

Merci pour cela. Cela m'aide vraiment beaucoup. – Narazana