Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#]XML Bestand inlezen; gedeelten worden weggelaten

Pagina: 1
Acties:
  • 134 views sinds 30-01-2008
  • Reageer

  • Razr
  • Registratie: September 2005
  • Niet online
Ik heb de volgende xml tag als voorbeeld

XML:
1
2
<?xml version="1.0" encoding="iso-8859-1" ?>
<XMLUitvoerLocatie>C:\Documents and Settings\Test\Desktop\</XMLUitvoerLocatie>


Nu wil ik de element waarde uitlezen, hier heb ik dan de volgende code voor (zet hem gelijk als parameter in een command):
C#:
1
cmd.Parameters.AddWithValue("@Ii", rdr.ReadElementContentAsString());


Nu staat er in mijn database uit eindelijk het volgende:

C:\Documents

Dus een gedeelte wordt niet mee ingelezen.. Bij URL's heb ik hetzelfde. Ik heb al gezocht op dingen als encoding types etc. maar kon niets relevants vinden.

  • Greyfox
  • Registratie: Januari 2001
  • Laatst online: 28-11 13:51

Greyfox

MSX rulez

Ik denk dat je meer moet denken aan het laden ervan in een XML Document object en dan met de SelectSingleNode methode de waarde eruit halen.
Tenzij het een absurd groot XML bestand is, dan zou ik het anders doen.

MSX 2 rulez more


  • BCC
  • Registratie: Juli 2000
  • Laatst online: 21:10

BCC

Het lijkt me overgens duidelijk dat hij breekt op de spatie.

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • Razr
  • Registratie: September 2005
  • Niet online
BCC schreef op donderdag 18 oktober 2007 @ 23:38:
Het lijkt me overgens duidelijk dat hij breekt op de spatie.
Nog een voorbeeld (dus niet verzonnen)
XML:
1
<SiteDomein>http://localhost:49997/</SiteDomein>


En dan komt exact dit in mijn db: http://localh

Dit is dus zonder spatie. Het vreemde is dat bij andere xml documenten het wel goed werkt met lange teksten of spaties etc. Het enige verschil is dat hier slashes gebruikt worden in de strings.

@Greyfox
Het gaat over erg grote documenten (10-20k rijen geen uitzondering)

[ Voor 7% gewijzigd door Razr op 18-10-2007 23:54 ]


  • DrDelete
  • Registratie: Oktober 2000
  • Laatst online: 21:50
Ik zou het in de inhoud zoeken van het xml bestand:

Moet het niet zijn : charset="iso-8859-1" encoding="utf-8"?

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 21:10

BCC

Dan pakt hij blijkbaar de eerste 13 characters :)

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • DrDelete
  • Registratie: Oktober 2000
  • Laatst online: 21:50
BCC schreef op vrijdag 19 oktober 2007 @ 08:24:
Dan pakt hij blijkbaar de eerste 13 characters :)
je kunt de encoding ook nog weglaten en opnieuw proberen.

daarnaast kun je de streamreader constructor ook een encoding enum meegeven

  • dotcode
  • Registratie: Augustus 2003
  • Laatst online: 28-11 14:13

dotcode

///\00/\\

Je doet twee dingen in een regel, maak er eens dit van en kijk wat de string wordt:

code:
1
2
string str = rdr.ReadElementContentAsString();
cmd.Parameters.AddWithValue("@Ii", str);


Je weet nu of het aan de ReadElementContentAsString() ligt of aan het toevoegen in de db

Als het aan de ReadElementContentAsString() ligt doe dan dit:
code:
1
2
3
4
XmlDocument xdoc = new XmlDocument();
xdoc.Load(filename);
string str = xdoc.SelectSingelNode("XmlUitvoerLocatie").InnerText;
cmd.Parameters.AddWithValue("@Ii", str);


Zo niet moet je iets anders verzinnen om de value in de db te krijgen.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
code:
1
2
http://localh
C:\Documents

Ik vermoed dat je DB veld gewoon te klein/kort is of de parameter van je SP. <hint> :P
(Aangenomen dat achter "documents" nog een spatie staat en beiden dus 13 tekens lang zijn.

[ Voor 67% gewijzigd door RobIII op 19-10-2007 10:03 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Razr
  • Registratie: September 2005
  • Niet online
RobIII schreef op vrijdag 19 oktober 2007 @ 10:01:
code:
1
2
http://localh
C:\Documents

Ik vermoed dat je DB veld gewoon te klein/kort is of de parameter van je SP. <hint> :P
(Aangenomen dat achter "documents" nog een spatie staat en beiden dus 13 tekens lang zijn.
Jeetje wat slecht van me je hebt inderdaad gelijk |:(

Iedereen toch bedankt voor de reacties :)

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 20:45
RobIII schreef op vrijdag 19 oktober 2007 @ 10:01:
code:
1
2
http://localh
C:\Documents

Ik vermoed dat je DB veld gewoon te klein/kort is of de parameter van je SP. <hint> :P
(Aangenomen dat achter "documents" nog een spatie staat en beiden dus 13 tekens lang zijn.
Ik had het ook al gezien maar werd helaas weggeroepen, was het eerste wat me opviel

Roomba E5 te koop

Pagina: 1