Jim DeMarco
Jdemarco at hudsonhealthplan.org
Thu Nov 16 12:56:42 CST 2006
Not to oversimplify (and XSL is not simple) but if this is a file you're going to handle regularly I'd consider writing an XSL transform to put the attributes into nodes that Access will understand. Then your import will be trivial. You've already noted that the file is validated via DTD so we know it'll parse. Great book on subject : "Just XSL" Jim DeMarco -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Charlotte Foust Sent: Thursday, November 16, 2006 1:00 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Parsing XML as a string? More likely something like this, where the attribute readonly, of the element dbtype, has a value of "False": <dbtype readonly="False">0</dbtype> Multiple attributes in the element would be separated by spaces. Each element can have 0 to many attributes and they could conceivably vary from node to node. Ouch! Charlotte Foust -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of JWColby Sent: Thursday, November 16, 2006 9:47 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Parsing XML as a string? OK, so I assume that you want to get the items, enclosed by < /> where there are two "values" separated by a space? You want all of them? Just specific ones? Are there more than one of the "big items" defined as the entire thing you sent me) in a single file? This looks trivial to parse based on the <> pairs as beginning / ending a field. This assumes that neither of these characters are found in the image data. I am not intimate with XML, but I thought that XML had <FieldName> data </FieldName>. This obviously doesn't. John W. Colby Colby Consulting www.ColbyConsulting.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Greg Smith Sent: Thursday, November 16, 2006 12:09 PM To: accessd at databaseadvisors.com Subject: Re: [AccessD] Parsing XML as a string? John: I sent you a full copy of the XML file offline. Greg > Not having followed the original thread... > > It sounds like a good place for a pair of classes. One class would > hold each "snippet" based on the < characters. A parent class would > break down the string into these snippets, load them into the snippet > classes and hold the snippet classes in a collection. Once the huge > string is parsed into snippets, the parent class can process them by > iterating the collection of snippets doing whatever was required for > each snippet. > > Once you have processed the snippets, you can write the results out to > a table. > > That is obviously a "big picture". > > Can you paste a sample of the xml into an email so that I can see it. > Sorry, I wasn't following the original discussion. > > John W. Colby > Colby Consulting > www.ColbyConsulting.com > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Greg Smith > Sent: Thursday, November 16, 2006 10:46 AM > To: accessd at databaseadvisors.com > Subject: [AccessD] Parsing XML as a string? > > Hi everyone! > > Ok...I admit that trying to import that XML file I had directly into > Access may have SEEMED like a good, "easy", idea...at the time...but > after looking around and from the comments here, the idea > was...well..it sucked. > If the XML they were sending to me were compatible then I might have > had a chance...but it's just not feasible. There actually wasn't any > way to define it using a dtd/xls/xlst within my lifetime, so I'm going > to have to use a different approach. > > The files they send as XML are not that large, so I could easily > import them as text, separate out what I need and put it into the > required tables. However, since they send it as a single string, it > becomes harder to parse it since there are multiple duplicated 'keys' > that I need to pull from it. And they're not necessarily in the same > position all of the time. > > I could import it as a single string into a memo field, but I can't > figure out how to disect a memo field string like that. > > When I import it as text, I could break it down at the "<" characters, > importing each one into a separate columns, but I need them in rows, > not columns, to search and find the strings of data I need. > > So, in summary, my only two choices (that I can think of) are: > > 1. Import the XML as a single string into a memo and somehow parse > that into the data I need. > 2. Import the XML as text, separating it on the "<" characters into > columns, then somehow magically (transpose columns into rows?) > transform that to usable information. > > ANY suggestions, short of retirement (although not a bad idea...), > would be GREATLY apprecaited! > > Thanks! > > Greg Smith > > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com