Обновить элемент XML с помощью LINQ to XML - PullRequest
1 голос
/ 15 марта 2010

Я редактирую элемент XML со следующим 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

Как обновить ServiceType и Price, где ServiceType = varServiceType?

Ответы [ 2 ]

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

Проверьте это:
http://msdn.microsoft.com/en-us/vbasic/bb688087.aspx
"Образцы LINQ to XML" ~~ vb

http://msdn.microsoft.com/en-us/library/bb387091.aspx
«Образцы (LINQ to XML)» ~~ c # и vb

http://msdn.microsoft.com/en-us/library/bb397965.aspx
«Образцы LINQ C #»

подробнее: через Google:

linq to xml samples
0 голосов
/ 15 марта 2010

Вы можете использовать что-то вроде этого:

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

Приведенный выше код возвращает элемент <LabService>.

Отредактировано, чтобы добавить:

Эй, я могу выбрать такую ​​цену с условием

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

Но я пока не могу понять, как его обновить. Можете ли вы поделиться этим кодом?

Используя ваш образец:

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

price.Value += 1500
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...