Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.os.linux.development.apps > #717
| From | Lew Pitcher <lew.pitcher@digitalfreehold.ca> |
|---|---|
| Subject | Re: Failure to extract information using mini-XML v2.8 |
| Newsgroups | comp.os.linux.development.apps |
| References | <Sl86v.121102$nm4.66014@fx27.iad> <87lhuu8uyu.fsf@sable.mobileactivedefense.com> |
| Organization | The Pitcher Digital Freehold |
| Message-ID | <zqd6v.82867$f85.57@fx19.iad> (permalink) |
| Date | 2014-04-24 15:16 -0400 |
On Thursday 24 April 2014 14:04, in comp.os.linux.development.apps, "Rainer
Weikusat" <rweikusat@mobileactivedefense.com> wrote:
> Lew Pitcher <lew.pitcher@digitalfreehold.ca> writes:
>> While using miniXML v2.8 (http://www.msweet.org/projects.php?Z3) to read
>> and process an XML document in a small C program, I came across a problem
>> that I cannot surmount.
>
> [...]
>
>> For my demo, I have a dead simple XML document:
>> <?xml version="1.0" encoding="utf-8"?><document>Hello, World</document>
>
> [...]
>
>> #include <stdio.h>
>> #include <stdlib.h>
>>
>> #include <mxml.h>
>>
>> int main(void)
>> {
>> int rc = EXIT_FAILURE;
>>
>> mxml_node_t *xml, *doc;
>> const char *text;
>>
>> xml = mxmlLoadFile(NULL,stdin,MXML_TEXT_CALLBACK);
>> doc =
>> mxmlFindElement(xml,xml,"document",NULL,NULL,MXML_DESCEND_FIRST);
>> text = mxmlGetText(doc,NULL);
>>
>> if (text)
>> {
>> printf("Success: \"%s\"\n",text);
>> rc = EXIT_SUCCESS;
>> }
>> else puts("Fail");
>>
>> return rc;
>> }
>
> As determined by examining the mini-XML (2.8) code and testing,
> mxmlLoadFile (or, more correctly, the corresponding backend routine)
> will only create 'interior value nodes' when the first argument to
> mxmlLoadFile is not null.
Pardon my reaction, but.... so?
"interior value nodes" doesn't mean anything to me. Does that mean that
miniXML does /not/ provide a way to extract text from XML?
Anyways, since, in my code, the first argument to mxmlLoadFile() /is/ NULL,
the condition you describe doesn't seem to apply.
FWIW, I've tested this with both mxmlLoadFile() and mxmlLoadString(), and
both fail in the same manner. I ruled out mxmlGetText() as a culprit, as it
seems to work when used with mxmlNewElement(), et al. That is to say
mxml_node_t *xml, *doc;
const char *text;
xml = mxmlNewXML("1.0");
doc = mxmlNewElement(xml,"document");
mxmlNewText(doc,0,"Hello, World");
text = mxmlGetText(doc,NULL);
does, indeed, return a pointer to the expected "Hello, World" string.
--
Lew Pitcher
"In Skills, We Trust"
PGP public key available upon request
Back to comp.os.linux.development.apps | Previous | Next — Previous in thread | Next in thread | Find similar
Failure to extract information using mini-XML v2.8 Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2014-04-24 09:30 -0400
Re: Failure to extract information using mini-XML v2.8 Rainer Weikusat <rweikusat@mobileactivedefense.com> - 2014-04-24 19:04 +0100
Re: Failure to extract information using mini-XML v2.8 Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2014-04-24 15:16 -0400
Re: Failure to extract information using mini-XML v2.8 Rainer Weikusat <rweikusat@mobileactivedefense.com> - 2014-04-24 20:45 +0100
Re: Failure to extract information using mini-XML v2.8 Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2014-04-24 16:02 -0400
csiph-web