Как разбирать элемент XML-строки?

В С# у меня есть строка xml с именем inputXmlString:

<grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dd="clr-namespace:DiagramDesigner;assembly=GUI">
 <setter.value>
 <lineargradientbrush startpoint="0,0" endpoint="0,1">
 <lineargradientbrush.gradientstops>
 <gradientstop color="#FFFAFBE9" offset="0">
 <gradientstop color="#FF00FFFF" offset="1">
 </gradientstop></gradientstop></lineargradientbrush.gradientstops>
 </lineargradientbrush>
 </setter.value>
<textbox background="#00FFFFFF" foreground="#FF000000" horizontalalignment="Center" verticalalignment="Center">Thread</textbox>
</grid>

Теперь я хочу получить текст элемента TextBox. Для этого я пробовал этот метод:

XElement inputElement = XElement.Parse(inputXmlString);
XElement textbox = inputElement.Element("TextBox");
string result = textbox.Value;

Но элемент textbox имеет значение null. Любое предложение?

1 ответ

У вас есть пространство имен на элементе, вам нужно указать его:

XNamespace ns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation";
XElement textbox = inputElement.Element(ns + "TextBox");

licensed under cc by-sa 3.0 with attribution.