1

外部ソースから fetchXml を取得しており、それに属性を挿入する必要があります。現時点では、確かにそこに存在する属性を、追加したい属性と一緒に置き換えることで、Q&Dを行っています。

String fetchy = ...;
String surely = "<attribute name=\"entity_uno_id\" />";
String addity = "<attribute name=\"entity_duo_id\" />";
return fetchy.Replace(surely, surely + addity);

これは醜く、専門的ではありません。より安全な方法で再設計できますか?提供されている fetchXml を制御することはできません。

4

2 に答える 2

0

このようなことを試してください

 string xmlString = ... // the whole xml string;
    var xml = XElement.Parse(xmlString);
    var xElement = new XElement(XName.Get("attribute", null));
    xElement.SetAttributeValue(XName.Get("name", null), "entity_duo_id");
    xml.Add(xElement);
于 2013-03-19T09:17:35.430 に答える
0

受信する fetchXml を制御できる場合は、String.Format 対応の書式設定タイプで書式設定してもらいます。たとえば、現在の文字列が次のようになっているとします。

var xml = "<blah><attribute name='entity_uno_id' /></blah>"

これを次のように変更します。

var xml = "<blah><attribute name='entity_uno_id' />{0}</blah>"

次に、次のように必要なものを追加できます。

String fetchy = ...;
String addity = "<attribute name='entity_duo_id' />";
return String.Format(fetchy, addity);

編集1

xml の正しい場所に含めるために指定された fetch xml をまだ制御できると仮定すると{0}、この拡張メソッドは機能します。

public static string AddAttributes(this string fetchXml, params string[] attributeNames)
{
    return String.Format(fetchXml, String.Join(String.Empty, attributeNames.Select(a => "<attribute name='" + a + "' />")));
}
于 2013-03-19T13:37:28.990 に答える