[Xitami-Dev] Re: using sfl xml library support makes problem

Shivakumar Gopalakrishnan xitami-dev@lists.xitami.org
Fri, 12 Sep 2003 10:49:17 -0700 (PDT)


--0-2040404336-1063388957=:96547
Content-Type: text/plain; charset=us-ascii
Content-Id: 
Content-Disposition: inline

Hi

I did not look into the xml file in detail. So yes
xml_get_attr_ic will not work as the file has items
not attributes. Anyway you should use the macro 

FORVALUES

to get the item values.

Here is a complete command line program which reads
from C:\userfile.xml. Everything is hardcoded and
reads only one level of the xml tree. Should not be
hard to extend it. I have also attached the file in
case it is hard to copy.

// xmlreader.cpp : Simple xml reader
//
// By Shivakumar Gopalakrishnan


#include "stdafx.h"
#include "sfl.h"

int main(int argc, char* argv[])
{
    int rc;
	XML_ITEM    *xml_root,
		*xml_source, * xml_domain_item, * xml_child, *
xml_value_child;

	char * name, * value;

	
    xml_root = xml_create (NULL, NULL);
    rc = xml_load_file (& xml_root, "C:",
"userfile.xml", FALSE);
    if (rc == XML_NOERROR)
	{
		// gets the root
		xml_source = xml_first_child (xml_root);
		char * item_name = xml_item_name(xml_source);
		printf("item name = %s\n", item_name);

		// now get the "Domain" item
		xml_domain_item = xml_first_child (xml_source);
		item_name = xml_item_name(xml_domain_item);
		printf("\titem name = %s\n", item_name);

		FORCHILDREN (xml_child, xml_domain_item)
		{
			name = xml_item_name  (xml_child);
			printf("\t\titem name = %s\n", name);
	
			FORVALUES (xml_value_child, xml_child) {
				value = xml_item_value (xml_value_child);
				printf("\t\t\titem value = %s\n", value);

			}
		}
        xml_free (xml_root);
	}
    else
	{
        fprintf (stderr, "xmlreader E: Error
processing C:\\userfile.xml...\n");
        fprintf (stderr, xml_error ());
	}
	return 0;
}



> Today's Topics:
> 
>    1. using sfl xml library support makes problem
> (Thomas Burghardt)
>    2. Delphi 6.0 LRWP component (Travis)
> 
> --__--__--
> 
> Message: 1
> From: "Thomas Burghardt"
> <thomas.burghardt@onlinehome.de>
> To: <xitami-dev@lists.xitami.org>
> Date: Thu, 11 Sep 2003 09:07:19 +0200
> Organization: Worms & Partner
> Subject: [Xitami-Dev] using sfl xml library support
> makes problem
> Reply-To: xitami-dev@lists.xitami.org
> 
> This is a multi-part message in MIME format.
> 
> ------=_NextPart_000_0086_01C37844.1A4BCB70
> Content-Type: text/plain;
> 	charset="iso-8859-1"
> Content-Transfer-Encoding: quoted-printable
> 
> Dear programmers,
> I try it again, because the question is really
> important for us. We =
> would like to use the SFL
> library, but the XML support of the library did not
> really work. A user =
> of the xitami mailing list told me, i should take
> the function =
> xml_get_attr_ic, but this did not work again.=20
> Please tell me if i can read the value
> 'UNEMPLOYMENT' in my xml file =
> (see the following section) with the sfl xml
> functions or not (and how)?
> Thank you very much. =20
> 
> The xml files looks like this short example:
> <Statistical_Metadata>=20
>   <Domain>
>   <name>UNEMPLOYMENT</name>=20
>   <label>VABOIUS INDICATORS CONCERNING THE
> UNEMPLOYMENT AND WORKING =
> POPULATION IN EU</label>=20
> </Domain>
> </Statistical_Metadata>
> 
--0-2040404336-1063388957=:96547
Content-Type: application/octet-stream; name="StdAfx.cpp"
Content-Transfer-Encoding: base64
Content-Description: StdAfx.cpp
Content-Disposition: attachment; filename="StdAfx.cpp"

Ly8gc3RkYWZ4LmNwcCA6IHNvdXJjZSBmaWxlIHRoYXQgaW5jbHVkZXMganVz
dCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMNCi8vCXhtbHJlYWRlci5wY2ggd2ls
bCBiZSB0aGUgcHJlLWNvbXBpbGVkIGhlYWRlcg0KLy8Jc3RkYWZ4Lm9iaiB3
aWxsIGNvbnRhaW4gdGhlIHByZS1jb21waWxlZCB0eXBlIGluZm9ybWF0aW9u
DQoNCiNpbmNsdWRlICJzdGRhZnguaCINCg0KLy8gVE9ETzogcmVmZXJlbmNl
IGFueSBhZGRpdGlvbmFsIGhlYWRlcnMgeW91IG5lZWQgaW4gU1REQUZYLkgN
Ci8vIGFuZCBub3QgaW4gdGhpcyBmaWxlDQo=

--0-2040404336-1063388957=:96547
Content-Type: application/octet-stream; name="StdAfx.h"
Content-Transfer-Encoding: base64
Content-Description: StdAfx.h
Content-Disposition: attachment; filename="StdAfx.h"

Ly8gc3RkYWZ4LmggOiBpbmNsdWRlIGZpbGUgZm9yIHN0YW5kYXJkIHN5c3Rl
bSBpbmNsdWRlIGZpbGVzLA0KLy8gIG9yIHByb2plY3Qgc3BlY2lmaWMgaW5j
bHVkZSBmaWxlcyB0aGF0IGFyZSB1c2VkIGZyZXF1ZW50bHksIGJ1dA0KLy8g
ICAgICBhcmUgY2hhbmdlZCBpbmZyZXF1ZW50bHkNCi8vDQoNCiNpZiAhZGVm
aW5lZChBRlhfU1REQUZYX0hfXzhEOUI2NzQyX0U1NDNfMTFEN19CMkNBXzAw
QzBGMDVCMjJEQ19fSU5DTFVERURfKQ0KI2RlZmluZSBBRlhfU1REQUZYX0hf
XzhEOUI2NzQyX0U1NDNfMTFEN19CMkNBXzAwQzBGMDVCMjJEQ19fSU5DTFVE
RURfDQoNCiNpZiBfTVNDX1ZFUiA+IDEwMDANCiNwcmFnbWEgb25jZQ0KI2Vu
ZGlmIC8vIF9NU0NfVkVSID4gMTAwMA0KDQojZGVmaW5lIFdJTjMyX0xFQU5f
QU5EX01FQU4JCS8vIEV4Y2x1ZGUgcmFyZWx5LXVzZWQgc3R1ZmYgZnJvbSBX
aW5kb3dzIGhlYWRlcnMNCg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQoNCi8vIFRP
RE86IHJlZmVyZW5jZSBhZGRpdGlvbmFsIGhlYWRlcnMgeW91ciBwcm9ncmFt
IHJlcXVpcmVzIGhlcmUNCg0KLy97e0FGWF9JTlNFUlRfTE9DQVRJT059fQ0K
Ly8gTWljcm9zb2Z0IFZpc3VhbCBDKysgd2lsbCBpbnNlcnQgYWRkaXRpb25h
bCBkZWNsYXJhdGlvbnMgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBwcmV2aW91
cyBsaW5lLg0KDQojZW5kaWYgLy8gIWRlZmluZWQoQUZYX1NUREFGWF9IX184
RDlCNjc0Ml9FNTQzXzExRDdfQjJDQV8wMEMwRjA1QjIyRENfX0lOQ0xVREVE
XykNCg==

--0-2040404336-1063388957=:96547
Content-Type: application/octet-stream; name="xmlreader.cpp"
Content-Transfer-Encoding: base64
Content-Description: xmlreader.cpp
Content-Disposition: attachment; filename="xmlreader.cpp"

Ly8geG1scmVhZGVyLmNwcCA6IFNpbXBsZSB4bWwgcmVhZGVyDQovLw0KLy8g
QnkgU2hpdmFrdW1hciBHb3BhbGFrcmlzaG5hbg0KDQoNCiNpbmNsdWRlICJz
dGRhZnguaCINCiNpbmNsdWRlICJzZmwuaCINCg0KaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqIGFyZ3ZbXSkNCnsNCiAgICBpbnQgcmM7DQoJWE1MX0lURU0g
ICAgKnhtbF9yb290LA0KCQkqeG1sX3NvdXJjZSwgKiB4bWxfZG9tYWluX2l0
ZW0sICogeG1sX2NoaWxkLCAqIHhtbF92YWx1ZV9jaGlsZDsNCg0KCWNoYXIg
KiBuYW1lLCAqIHZhbHVlOw0KDQoJDQogICAgeG1sX3Jvb3QgPSB4bWxfY3Jl
YXRlIChOVUxMLCBOVUxMKTsNCiAgICByYyA9IHhtbF9sb2FkX2ZpbGUgKCYg
eG1sX3Jvb3QsICJDOiIsICJ1c2VyZmlsZS54bWwiLCBGQUxTRSk7DQogICAg
aWYgKHJjID09IFhNTF9OT0VSUk9SKQ0KCXsNCgkJLy8gZ2V0cyB0aGUgcm9v
dA0KCQl4bWxfc291cmNlID0geG1sX2ZpcnN0X2NoaWxkICh4bWxfcm9vdCk7
DQoJCWNoYXIgKiBpdGVtX25hbWUgPSB4bWxfaXRlbV9uYW1lKHhtbF9zb3Vy
Y2UpOw0KCQlwcmludGYoIml0ZW0gbmFtZSA9ICVzXG4iLCBpdGVtX25hbWUp
Ow0KDQoJCS8vIG5vdyBnZXQgdGhlICJEb21haW4iIGl0ZW0NCgkJeG1sX2Rv
bWFpbl9pdGVtID0geG1sX2ZpcnN0X2NoaWxkICh4bWxfc291cmNlKTsNCgkJ
aXRlbV9uYW1lID0geG1sX2l0ZW1fbmFtZSh4bWxfZG9tYWluX2l0ZW0pOw0K
CQlwcmludGYoIlx0aXRlbSBuYW1lID0gJXNcbiIsIGl0ZW1fbmFtZSk7DQoN
CgkJRk9SQ0hJTERSRU4gKHhtbF9jaGlsZCwgeG1sX2RvbWFpbl9pdGVtKQ0K
CQl7DQoJCQluYW1lID0geG1sX2l0ZW1fbmFtZSAgKHhtbF9jaGlsZCk7DQoJ
CQlwcmludGYoIlx0XHRpdGVtIG5hbWUgPSAlc1xuIiwgbmFtZSk7DQoJDQoJ
CQlGT1JWQUxVRVMgKHhtbF92YWx1ZV9jaGlsZCwgeG1sX2NoaWxkKSB7DQoJ
CQkJdmFsdWUgPSB4bWxfaXRlbV92YWx1ZSAoeG1sX3ZhbHVlX2NoaWxkKTsN
CgkJCQlwcmludGYoIlx0XHRcdGl0ZW0gdmFsdWUgPSAlc1xuIiwgdmFsdWUp
Ow0KDQoJCQl9DQoJCX0NCiAgICAgICAgeG1sX2ZyZWUgKHhtbF9yb290KTsN
Cgl9DQogICAgZWxzZQ0KCXsNCiAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAi
eG1scmVhZGVyIEU6IEVycm9yIHByb2Nlc3NpbmcgQzpcXHVzZXJmaWxlLnht
bC4uLlxuIik7DQogICAgICAgIGZwcmludGYgKHN0ZGVyciwgeG1sX2Vycm9y
ICgpKTsNCgl9DQoJcmV0dXJuIDA7DQp9DQoNCg==

--0-2040404336-1063388957=:96547--