سؤال

وكيفية إضافة سلسلة XML الموجودة في XElement؟

وهذا الرمز

        var doc = new XDocument(
            new XElement("results", "<result>...</result>")
        );

وبالطبع ينتج هذا

  <results>&lt;result&gt;&lt;/result&gt;</results>

ولكن انا بحاجة الى هذا

  <results><result>...</result></results>

وأي أفكار؟

هل كانت مفيدة؟

المحلول

وهذا يجب أن تعمل:

var xmlString = "<result>sometext</result>";
var xDoc = new XDocument(new XElement("results", XElement.Parse(xmlString)));

نصائح أخرى

والجواب من قبل ساني سينغ Huttunen وضعني على الطريق الصحيح، ولكنه يسمح احد فقط <م> نتيجة عنصر في نتائج العنصر.

var xmlString = "<result>sometext</result><result>alsotext</result>";

وفشل مع System.Xml.XmlException

<اقتباس فقرة>   

وهناك عناصر جوهرية عديدة.

وأنا تحل هذه عن طريق تحريك <م> نتائج العنصر إلى سلسلة حرفية

var xmlString = "<results><result>sometext</result><result>alsotext</result></results>";

وبحيث سوى عنصر جذر واحد ثم أضاف سلسلة تحليل مباشرة إلى العنصر الأصلي، مثل هذا:

parent.Add(XElement.Parse(xmlString));

وانظر جوابي على هل هناك ما يعادل XElement لXmlWriter.WriteRaw؟

وأساسا، استبدال النائب عن محتوى <م> فقط إذا كنت تعرف انها بالفعل XML صحيح .

var d = new XElement(root, XML_PLACEHOLDER);
var s = d.ToString().Replace(XML_PLACEHOLDER, child);

قد يكون هذا الأسلوب أيضا أسرع من تحليل ذلك مع XElement.Parse.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top