Нужна небольшая помощь с Linq 2 xml
-
19-08-2019 - |
Вопрос
У меня есть сценарий, похожий на этот:
public class TestLinq2Xml
{
private XElement GenerateSomeXml()
{
return XElement.Parse(@"<MyObject>
<Properties>
<Name>My object 1</Name>
<Position>0; 0; 0</Position>
</Properties>
</MyObject>");
}
public void ExploreXmlNode()
{
var xmlTree = this.GenerateSomeXml();
var name = xmlTree.Element("MyObject").Element("Properties").Element("Name").Value;
Console.WriteLine(name);
}
}
Хорошо, это очень упрощенно..... но это все равно не сработает.Есть какие-нибудь идеи о том, что я здесь делаю не так?
Редактировать:
О, чуть не забыл.Проблема в том, что xmlTree.Element("MyObject")
возвращает пустую последовательность linq.Даже несмотря на то, что у меня явно есть узел с именем "MyObject".
Решение
Элемент X.Синтаксический анализ возвращает элемент X, который является <MyObject>
узел.Попробуй:-
имя переменной = xmlTree.Элемент ("Свойства").Элемент ("Имя").Значение;
Другие советы
Помимо того, что предлагалось в предыдущем постере, вы также можете вернуть XDocument из вашей функции GenerateSomeXml(), чтобы ваш linq работал.
private static XDocument GenerateSomeXml()
{
return XDocument.Parse(@"<MyObject>
<Properties>
<Name>My object 1</Name>
<Position>0; 0; 0</Position>
</Properties>
</MyObject>");
}
Не связан с StackOverflow