2014-11-24 3 views
0

Я новичок в использовании XML с визуальным базовым. То, что я пытаюсь выполнить, - это загрузка данных в текстовые поля на основе узла элементов. Я сделал это со статическими адресами. Однако теперь я хочу изменить его на основе атрибута экрана узла с именем «ID».XML-анализ на основе атрибута ID

Например, если идентификатор атрибута из узла экрана = 36, я хочу, чтобы aLabel.text равнялся «Яблоки». Я тоже соглашусь ответить на C#, я тоже могу сделать или.

Пример XML

<Screen attribute ="35"> 
    <A>Chrono Trigger</A> 
</Screen> 
<Screen attribute ="36"> 
    <A>Apples</A> 
</Screen> 

VB.Net Код

doc.Load(files) 
Static NodeNumber As Integer = 0 
RichTextBox1.Text = (doc.DocumentElement.SelectSingleNode("/Main/Screen").Attributes.ItemOf("ID").InnerText) 
aLabel.Text = (doc.DocumentElement.SelectSingleNode("/Main/Screen/A").InnerText) 
bLabel.Text = (doc.DocumentElement.SelectSingleNode("/Main/Screen/B").InnerText) 
cLabel.Text = (doc.DocumentElement.SelectSingleNode("/Main/Screen/C").InnerText) 
dLabel.Text = (doc.DocumentElement.SelectSingleNode("/Main/Screen/D").InnerText) 
+0

Функция использует [xpath] (http://msdn.microsoft.com/en-us/library/ms256115 (v = vs.110) .aspx), попробуйте найти, как она работает. Он должен выглядеть примерно так: Экран [@ attribute = '35 '] –

ответ

1

Вы можете использовать XPath, чтобы выбрать подходящий Screen элемент, как этот

Dim screenNode as XmlNode = doc.SelectSingleNode("/Main/Screen[@attribute = '35']") 

части с квадратными скобками ([@attribute = '35']) - это состояние - вид как If s tatement. Символ @ используется для указания того, что вы указываете имя атрибута, а не элемент.

Тогда вы можете прочитать суб-элементы, как это:

aLabel.Text = screenNode.SelectSingleNode("A").InnerText 
bLabel.Text = screenNode.SelectSingleNode("B").InnerText 
cLabel.Text = screenNode.SelectSingleNode("C").InnerText 
dLabel.Text = screenNode.SelectSingleNode("D").InnerText 

XPath является очень мощным языком запросов, со многими другими функциями. Если вы собираетесь работать с XML много, он определенно порекомендует потратить некоторое время, чтобы хотя бы изучить его основы.

+0

Большинство из того, что мне не хватало, было синтаксисом. Я знал о XPath и его способности. Отвечал на мой вопрос. –

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