Parsowanie prostego xml-a

Parsowanie prostego xml-a
AL
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:143
0

Witam, czego aktualnie używa się do parsowania xml-a ? XmlTextReader ? XmlDocument ?

Mam xmla zawartego w stringu

Kopiuj
<order_response>
<distributor>inner</distributor>
<orderid>test30902</orderid>
<error id="301">Zamówienie przyj?te wcze?niej</error>
</order_response>

Muszę wyciągać z niego takie informacje jak orderId, error id (jesli jest) i text z errorId. Za cholere nie wiem jak... Co bym nie napisał to nie działa (Próbowałem XmlTextReader i XmlDocument )

ŁF
Moderator
  • Rejestracja:ponad 22 lata
  • Ostatnio:7 dni
1

XElement - var xroot = XElement.Load(stringContainingXml). Potem np. xroot.Element("distributor").Value, albo xroot.Element("error").Attribute("id").Value.

Ad XmlDocument itp - co to znaczy "nie działa"? Jaki błąd leci? Z czym konkretnie masz problem? Szukałeś w internecie jak się to robi?


edytowany 2x, ostatnio: ŁF
AL
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:143
0

Jasne że szukałem. I zrobiłem tak jak podają na stornie msc, czyli :

Kopiuj
 private string RetrieveOrderIdFromXml(string response)
        {
            StringBuilder output = new StringBuilder();
            using (XmlReader reader = XmlReader.Create(new StringReader(response)))
            {
                reader.ReadToFollowing("orderid");
                string orderId = reader.Value;

                reader.ReadToFollowing("error");
                reader.MoveToFirstAttribute();
                string errorId = reader.Value;
                return orderId;
            }
        }

o ile orderId i errorId jest okej, to potem nie jestem w stanie wydobyć z tagu error, tekstu w nim zawartego czyli, po wydobyciu error id nie wiem jak potem wydobyć text z error-a

Kopiuj
<error id=\"202\"><![CDATA[Premature end of file.]]></error>
edytowany 2x, ostatnio: Altaro
ŁF
No to zrób tak, jak Ci napisałem.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.