Получить данные из файла XML в событии Button_Click - PullRequest
1 голос
/ 06 февраля 2020

Я пытаюсь получить данные из файла XML с этим кодом:

private void button1_Click(object sender, EventArgs e)
{
    XDocument doc = XDocument.Load(@"C:\..\WindowsFormsApp10\stores.xml");
    var xpath = "//store[Color='Pink']";
    var result = doc.XPathEvaluate(xpath);
    textBox1.Text = result.ToString();
}

Мой XML:

<stores>
    <store rollNumer="170">
        <Name>Jonh</Name>
        <Color>Pink</Color>
        <Sell>Sugar</Sell>
    </store>

    <store rollNumer="120">
        <Name>Tedy</Name>
        <Color>Brown</Color>
        <Sell>Rice</Sell>
    </store>
</stores>            <!-- Added by edit -->

Но это дает мне эту ошибку :

System. Xml .XPath.XPathEvaluator + EvaluateIterator> d__1`1 [System.Object]

Что я могу сделать?

1 Ответ

1 голос
/ 06 февраля 2020

Его печать, System.Xml.XPath.XPathEvaluator+EvaluateIterator>d__1 1 [System.Object] `потому что вы печатаете объект. Использование ToString () для объекта не печатает все свойства объекта; вместо этого он печатает тип объекта с помощью метода ToString ().

Используемый вами XPath ищет Color, чье «что-то» - Pink, когда вы должны проверить text () для Color, чтобы Розовый.

Это поможет,

XDocument doc = XDocument.Load(filename);
var xpath = "//store/Color[text() = 'Pink']";
var result = ((IEnumerable)doc.XPathEvaluate(xpath)).Cast<XElement>().FirstOrDefault();
Console.WriteLine(result.Value);

Выводит следующий вывод:

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