/ / Ako získať hodnotu atribútu xlink: názov z xml - c #, xml, tridion, tridion-2011

Ako získať hodnotu atribútu xlink: názov z xml - c #, xml, tridion, tridion-2011

Toto je môj XML generovaný pre získavanie členov skupiny. Potrebujem získať hodnotu techabc1234 z tohto xml.

<tcm:Trustee xlink:href="tcm:0-61-65552" xlink:type="simple" xlink:title="techabc1234" Type="65552" Icon="T65552L0P0" xmlns:xlink="http://www.w3.org/1999/xlink"  xmlns:tcm="http://www.tridion.com/ContentManager/5.0"></tcm:Trustee>

Ale keď sa snažím získať hodnotu atribútu ako:

XElement userList = csClient.GetListXml(grpId, members);

foreach (var eachuser in userList.Elements())
{
logdetails(eachuser.Attribute("xlink:title").Value.ToString());
}

Mám nasledujúcu chybu: error The ":" character, hexadecimal value 0x3A, cannot be included in a name.

odpovede:

12 pre odpoveď č. 1

V súčasnej dobe ste "re. \ T string na XName konverzie, ktorá berie tento reťazec ako proste lokálne ID prvku a ktoré nemôže obsahovať dvojbodku.

Musíte vytvoriť XName s plným menným priestorom + lokálnym ID. LINQ to našťastie robí naozaj jednoduchým:

XNamespace xlink = "http://www.w3.org/1999/xlink";
XElement userList = csClient.GetListXml(grpId, members);

foreach (var user in userList.Elements())
{
logdetails(user.Attribute(xlink + "title").Value);
}

Všimnite si, že nie je potrebné volať ToString() po Value - XAttribute.Value už vráti reťazec.