AMcoder - javascript, python, java, html, php, sql

Խնդիր XmlWriter-ի և XmlWriterSettings-ի հետ

Ես կցանկանայի կարգավորումներ տեղադրել իմ XmlWriter-ում: Ես խնդիր ունեմ, երբ ես սերիականացնում եմ իմ օբյեկտը XmlWriter-ով: Իմ օբյեկտը պարզ օբյեկտ է get/set-ով:

Երբ զանգում եմ սերիականացման ֆունկցիան, ունենում եմ հետևյալ սխալը.

Սխալ XML փաստաթուղթ ստեղծելիս

Ամբողջական StackTrace.

Inner Exception : 

System.InvalidOperationException {"WriteStartDocument can not be called 
on writers created with ConformanceLevel.Fragment."} System.InvalidOperationException



Erreur lors de la génération du document XML.
----------------------------------------------------  
 à System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)

 à System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces)

 à ...\Classes\MyClasse.vb:ligne 350

Public Function ObjectToXML() As String
    Try
        Dim xmlSerializer As New XmlSerializer(Me.GetType, AttrOverrides)
        Dim ns As New XmlSerializerNamespaces()
        ns.Add("", "")
        Dim settings As New XmlWriterSettings()
        settings.ConformanceLevel = ConformanceLevel.Fragment
        settings.OmitXmlDeclaration = True

        Dim writer As XmlWriter = XmlWriter.Create(New MemoryStream(), settings)
        xmlSerializer.Serialize(writer, Me, ns)
        writer.Close()

        Return writer.ToString
    Catch ex As Exception
        Error()
    End Try
End Function

Իմ սերիալիզացիան աշխատում է, երբ ես կարգավորումներ եմ հանում իմ XmlWriter-ից:

Ինչպե՞ս օգտագործել կարգավորումները XmlWriter-ի հետ:

10.01.2017

  • Չկա՞ ավելի մանրամասն սխալի հաղորդագրություն: Կարո՞ղ եք վրիպազերծել կոդը և տեղադրել ստեկի հետքը: 10.01.2017
  • Ես տեղադրել եմ ամբողջական stacktrace-ը: Շատ տեղեկություններ չկան։ 10.01.2017
  • Կարո՞ղ եք (վրիպազերծիչով) փնտրել InnerException: 10.01.2017
  • Ես ավելացրել եմ InnerException-ը: 10.01.2017
  • Այսպիսով, WriteStartDocument-ը չի կարող կոչվել ConformanceLevel.Fragment-ով ստեղծված գրողների վրա: ասում է ձեզ, որ settings.ConformanceLevel = ConformanceLevel.Fragment տողը մեղավոր է: Ինչո՞ւ եք կարծում, որ դա ձեզ պետք է: Կարծում եմ՝ XmlSerializer-ը միշտ լավ ձևավորված փաստաթուղթ է ստեղծում: 10.01.2017
  • Ինձ սա է պետք իմ XML-ից սա հեռացնելու համար՝ ‹?xml version=1.0 encoding=utf-8?›: Ես գտել եմ լուծումն այստեղ՝ stackoverflow.com/questions /1980187/ բայց դա ինձ մոտ չի աշխատում 10.01.2017
  • Դա XML հռչակագիրն է, և settings.OmitXmlDeclaration = True-ի օգտագործումը բավական է այն բաց թողնելու համար: 10.01.2017
  • Լավ, աշխատում է: Բայց ես նաև մտածեցի, որ արմատը կարելի է հեռացնել ConformanceLevel.Fragment-ի միջոցով: Վերջապես, ինձ պետք է սխալ ձևավորված XML առանց արմատի և հռչակագրի: Հիմա ես հռչակագիրը չունեմ, բայց արմատը միշտ առկա է: Կարո՞ղ եմ հեշտությամբ հեռացնել արմատը: 10.01.2017
  • Վերջապես, ինձ պետք է անսարք XML առանց արմատի և հռչակագրի: Իսկապե՞ս: Եվ ով պետք է օգտագործի այդ նյութը, ապա հայտնվում է այստեղ՝ բողոքելով, որ օգտագործված XML վերլուծիչը չի կարող վերլուծել այդ XML-ը: Բայց լավ, եթե ցանկանում եք բաց թողնել արմատային տարրը, ես կքննարկեմ Dim resultDoc as New XmlDocument()-ը, այնուհետև xmlSerializer.Serializer(resultDoc.CreateNavigator().AppendChild(), Me)-ը և վերջապես վերադարձնել resultDoc.DocumentElement.InnerXml-ը: Չեմ կարծում, որ XmlSerializer-ը դա անելու միջոց ունի բացառապես Serialize մեթոդով և XmlWriter-ով: 10.01.2017
  • առանց արմատի և հայտարարագրի - Դուք չեք կարողանա համոզել XmlSerializer-ին բաց թողնել արմատը: Թվում է, թե ձեր միակ տարբերակը այն ավելի ուշ հեռացնելն է և սերիականացված տվյալներից ձեր սխալ ձևավորված xml ստանալը: Ավելի հեշտ է XElement-ով, եթե տվյալները շատ մեծ չեն: 10.01.2017
  • Վերջապես, ինձ անհրաժեշտ է անսարք XML առանց արմատի: Ոչ XmlWriter-ը, ոչ XmlSerializer-ը չեն աջակցում առանց արմատների անվավեր XML-ի ստեղծմանը: Դա անելու համար ձեզ անհրաժեշտ կլինի RootlessDataSetXmlWriter-ի նման մի բան այս պատասխանից: 03.02.2017

Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..