2013-03-16 1 views
0

Я пишу веб-службу .asmx, чтобы вернуть все модели автомобилей, соответствующие заданной модели из XML-файла.Возвращение автомобиля, предоставляя модель автомобиля из файла XML с использованием веб-службы .asmx

Использование VB в ASP.net, вы можете предложить, как я мог:

1) сначала найти спичку к запрошенным замыкающим, затем 2) вернуть все модели?

Ниже приведен образец XML. Благодаря!

<cars> 
    <car> 
    <carmake>Acura</carmake> 
    <carmodels> 
     <carmodel>ILX</carmodel> 
     <carmodel>MDX</carmodel> 
     <carmodel>RDX</carmodel> 
    </carmodels> 
    </car> 

    <car> 
    <carmake>Aston Martin</carmake> 
    <carmodels> 
     <carmodel>DB9</carmodel> 
     <carmodel>DBS</carmodel> 
     <carmodel>Rapide</carmodel> 
    </carmodels> 
    </car> 
</cars> 

ответ

1

Вы можете сделать это с помощью XPath

Dim doc As New Xml.XmlDocument 
doc.LoadXml("yourinputxmlasstring") 

Dim maker As String = "Aston Martin" 
For Each x As Xml.XmlNode In doc.SelectNodes("cars/car[carmake='" + maker + "']") 
    For Each p As Xml.XmlNode In x.SelectNodes("carmodels/carmodel") 
     Console.WriteLine(p.InnerText) 
    Next 
Next 
+0

Спасибо. Пробовал это, получил ошибку в строке doc.LoadXml: Данные на корневом уровне недействительны. Строка 1, позиция 1. – bommerts

+0

Проблема решена: я использовал doc.Load вместо doc.LoadXml. Спасибо - этот код работает отлично! – bommerts

+0

Любые предложения о том, как преобразовать поиск, чтобы искать строчные буквы? maker.tolower работает, но как насчет строки «cars/car [carmake =»? – bommerts

Смежные вопросы