Uwakpeter Ответов: 2

Как добавить строковый раздел из XML-строки


У меня есть строковая переменная, которая возвращает это:

<pre><role name="olvers" guid="ee81e26aeb7cd" description="Used at" isdynamic="false">
<extradata>
</extradata>
<include>
 <users>
   <user name="Q:www\sitename1" />
   <user name="Q:www\sitename2" />
   <user name="Q:"www\sitename3" />
 </users>
<groups />
<smartobjects />
</include>
<exclude>
<users />
<groups />
<smartobjects />
</exclude>
</role>



Я хочу иметь возможность извлекать атрибут name из каждого пользовательского элемента и хранить его в списке. В этом случае я бы хотел, чтобы список содержал следующие значения:

Q:www\sitename1
Q:www\sitename2
Q:www\sitename3

К сожалению, это не работает. Как я могу извлечь эти значения и сохранить их в списке?

Что я уже пробовал:

XElement documentRoot = XElement.Load(getUserRoles);


XmlNodeList nodes = 
            root.SelectNodes("/role/extradata/include/users");
foreach (XmlElement node in nodes)
{
    log.Info("User in role : " + node.Value);
}

2 Ответов

Рейтинг:
8

F-ES Sitecore

Обратите внимание, что я изменил несколько вещей, а не только путь.

XmlDocument documentRoot = new XmlDocument();
documentRoot.LoadXml(getUserRoles);

XmlNodeList nodes = documentRoot.SelectNodes("/role/include/users/user");
foreach (XmlElement node in nodes)
{
    log.Info("User in role : " + node.Attributes["name"].Value);
}


Рейтинг:
0

CHill60

Разве это не должно быть select "/role/include/users" ... include не является подузлом extradata