2

これは、グループのメンバーを取得するために生成された私のxmlです。このxmlから値tech\abc1234を取得する必要があります。

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

しかし、次のような属性値を取得しようとすると、次のようになります。

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

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

次のエラーが発生します: error The ':' character, hexadecimal value 0x3A, cannot be included in a name.

4

1 に答える 1

12

現在、stringtoXName変換を使用しています。これは、その文字列を要素のローカルIDとしてのみ取得し、コロンを含めることはできません。

XName完全な名前空間+ローカルIDを使用してを作成する必要があります。幸い、LINQを使用すると、これが非常に簡単になります。

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);
}

ToString()後に呼び出す必要はないことに注意してくださいValue-XAttribute.Valueすでに文字列を返します。

于 2012-09-04T05:38:31.870 に答える