2016-08-01 9 views
0

Ich möchte eine XML-Ausgabe als unterWie XML-Knoten mit Doppelpunkt

<ExtendedData xmlns:section="http://svr:1245/contact/kml/section.xsd"> 
    <section:secid>svr_01</section:secid> 
    <section:name>test</unit:name> 
    </ExtendedData> 

Wie kann ich erreichen, dies zu schaffen? Mein Code ist wie unten, aber der Ausgang ist nicht korrekt

var attribute = xDoc.CreateAttribute("section","secid","http://svr:1245/contact/kml/section.xsd"); 

XmlElement elementExtendedData = xDoc.CreateElement("ExtendedData"); 
elementPlacemark.AppendChild(elementExtendedData); 

var elementSectionid = xDoc.CreateElement("section", "secid"); 
attribute.InnerText = UniqueID; 
elementSectionid.Attributes.Append(attribute); 
elementExtendedData.AppendChild(elementSectionid); 

Antwort

1

Erstellen Sie zunächst das ElementData Element hinzufügen fügen Sie den Namespacepräfix xmlns:section. Fügen Sie dann Ihr Element mit dem richtigen Präfix und Namespace hinzu.

var extendedData = xDoc.CreateElement("ExtendedData"); 
extendedData.SetAttribute("xmlns:section", "http://svr:1245/contact/kml/section.xsd"); 

elementPlacemark.AppendChild(extendedData); 

var secId = xDoc.CreateElement("section", "secid", "http://svr:1245/contact/kml/section.xsd"); 
secId.InnerText = "svr_01"; 

extendedData.AppendChild(secId); 

Wenn Sie die Option haben, würde ich stattdessen, es ist mit LINQ to XML vorschlagen mit viel schöner zu arbeiten:

XNamespace ns = "http://svr:1245/contact/kml/section.xsd"; 

var element = new XElement("ExtendedData", 
    new XAttribute(XNamespace.Xmlns + "section", ns), 
    new XElement(ns + "secid", "svr_01") 
); 
Verwandte Themen