2016-08-18 5 views
0

Ich versuche, den XElement XName in ein lesbares Format zu ändern, kann aber nicht. Wie ersetze ich den XElement-Namen durch einen Alias-Namen? Unten ist mein XElement-Code.So ändern Sie den XElement-Namen in C#

var root = new XElement("Reports", 
             from l in _userReportMasterDataList 
             join m in _userReportLocalDataList on l.UsrID equals m.TypeValue 
             select new XElement("Report", 
             new XElement("CreatedDate", (DateTime)(l.CreatedDate)), 
             new XElement("LogType", (string)(l.LogType)), 
             new XElement("LoginID", (string)(l.LoginID)), 
             new XElement("Name", (string)(m.Name)), 
             new XElement("AppVersion", (string)(l.AppVersion)), 
             new XElement("System", (string)(l.System)), 
             new XElement("UserIP", (string)(l.UserIPAddress)), 
             new XElement("LoginDate", (DateTime?)(l.LoginDate)), 
             new XElement("LogoutDate", (DateTime?)(l.LogoutDate)), 
             new XElement("Remarks", (string)(l.Remarks))), new XElement("Header", 
             new XElement("ReportID", (string)(r.ReportID)), 
             new XElement("GroupingColumn1", (string)(r.GroupingColumn1)), 
             new XElement("PrintedBy", (string)(r.ReqHdr.Server)), 
             new XElement("PrintedDate", (DateTime)(DateTime.UtcNow)))); 

An der Stelle des XName "CreatedDate", will ich es mit Erstellungsdatum ersetzen "USERIP" auf "IP-Adresse" usw.

Danke,

+1

XElement Name folgen XML-Standard. Es darf keinen Platz für den Elementnamen enthalten. Sie können aber das Attribut verwenden, um eine Beschreibung des Elementnamens einzugeben. – CodeNotFound

+0

@CodeNotFound: Wie kann ich das Attribut mit dem obigen Code verwenden? Kannst du bitte ein Beispiel posten? Vielen Dank! –

+0

Nur ein neues XAttribute jedes XElement-Konstruktors, den Sie benötigen. – CodeNotFound

Antwort

0

von Beantwortet @ dbc:

XML-Elementnamen dürfen keine Leerzeichen enthalten. Siehe stackoverflow.com/questions/2519845/ .... Sie können XmlConvert.EncodeLocalName (String) verwenden, um einen Namen mit Leerzeichen zu codieren und sie später zu decodieren.