2015-05-28 4 views
2

Мне нужно получить ясный xml без каких-либо namespace и type объявлений. Вот сериализованные XML:удалить объявление типа из XML при сериализации

<placeBetRequest p1:type="PlaceBetRequestTeamed" xmlns:p1="http://www.w3.org/2001/XMLSchema-instance"> 
... 
</placeBetRequest> 

нужно настроить XmlSerializer некоторым образом, чтобы установить его не добавлять никаких атрибутов, но только мой (если я изложу их [XmlAttribte] чистый XML должны выглядеть следующим образом:

<placeBetRequest> 
... 
</placeBetRequest> 

Вот мой метод сериализации:..

public static string XmlConvert<T>(T obj, params Type[] wellKnownTypes) where T : class 
{ 
    var emptyNamepsaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }); 
    var settings = new XmlWriterSettings {Indent = true, OmitXmlDeclaration = true}; 
    XmlSerializer serializer = wellKnownTypes == null 
     ? new XmlSerializer(typeof(T)) 
     : new XmlSerializer(typeof(T), wellKnownTypes); 
    using (var stream = new StringWriter()) 
    using (var writer = XmlWriter.Create(stream, settings)) 
    { 
     serializer.Serialize(writer, obj, emptyNamepsaces); 
     return stream.ToString(); 
    } 
} 

Пожалуйста, помогите спасибо

ответ

0

Я пользуюсь regex

string input = 
    "<p1:placeBetRequest p1:type=\"PlaceBetRequestTeamed\" xmlns:p1=\"http://www.w3.org/2001/XMLSchema-instance\">" + 
    "</p1:placeBetRequest>"; 

    string pattern = @"(?'prefix'\</?)(?'ns'[^:]*:)"; 
    string output = Regex.Replace(input, pattern, "${prefix}"); 
Смежные вопросы