当前位置:首页 » 文件管理 » ftpxml解析

ftpxml解析

发布时间: 2022-04-25 15:41:15

㈠ 从ftp上下载每天的xml文件到本地,再解析本地的xml文件中的数据并将其存入sqlserver数据库

我给你个解析的代码吧~具体存数据库得根据实际情况来
#include "StdAfx.h"
#include "parse.h"
#include <string>
#include "stdafx.h"
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <iostream>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include <stdio.h>
#include <stdlib.h>
#include<windows.h>

using namespace std;

parse::parse()
//int parse::parsexml()
{

xmlDocPtr doc; //定义解析文档指针

xmlNodePtr curNode; //定义结点指针(你需要它为了在各个结点间移动)

xmlChar *szKey; //临时字符串变量

char *szDocName;

doc = xmlReadFile("SimACQ_Config.xml","GB2312",XML_PARSE_RECOVER); //解析文件

//检查解析文档是否成功,如果不成功,libxml将指一个注册的错误并停止。

if (NULL==doc)

{

fprintf(stderr,"Document not parsed successfully. /n");

/*return -1;*/

}

curNode = xmlDocGetRootElement(doc); //确定文档根元素

/*检查确认当前文档中包含内容*/

if (NULL == curNode)

{

fprintf(stderr,"empty document/n");

xmlFreeDoc(doc);

/*return -1;*/

}

/*在这个例子中,我们需要确认文档是正确的类型。“root”是在这个示例中使用文档的根类型。*/

if (xmlStrcmp(curNode->name, BAD_CAST "SIMCONFIG"))

{

fprintf(stderr,"document of the wrong type, root node != mail");

xmlFreeDoc(doc);

/*return -1; */

}

curNode = curNode->xmlChildrenNode;

xmlNodePtr propNodePtr = curNode;

while(curNode != NULL)

{

//取出节点中的内容

if ((!xmlStrcmp(curNode->name, (const xmlChar *)"ComConfig")))
{

xmlNodePtr comConfigPtr= curNode->children;

while(comConfigPtr!=NULL)

{

if((!xmlStrcmp(comConfigPtr->name,(const xmlChar *)"DMS")))

{
xmlChar* szAttr = xmlGetProp(comConfigPtr,BAD_CAST "IP");

IP=(char*)szAttr;

szAttr=xmlGetProp(comConfigPtr,BAD_CAST "PORT");

PORT=atoi((const char *)szAttr);

szAttr=xmlGetProp(comConfigPtr,BAD_CAST "TIMEOUT");

TIMEOUT=atoi((const char *)szAttr);

xmlFree(szAttr);
}

comConfigPtr=comConfigPtr->next;
}
}

if ((!xmlStrcmp(curNode->name, (const xmlChar *)"Log")))
{
xmlChar* szAttr = xmlGetProp(curNode,BAD_CAST "Flag");

if(szAttr!=NULL)
{

if((!xmlStrcmp(szAttr,(const xmlChar *)"True")))

{
FLAG=true;
}
else
{
FLAG=false;
}
}

szAttr = xmlGetProp(curNode,BAD_CAST "Path");

if(szAttr!=NULL)
{
PATH=(char*)szAttr;
}

xmlFree(szAttr);

}

if ((!xmlStrcmp(curNode->name, (const xmlChar *)"DMS")))
{
xmlChar* szAttr = xmlGetProp(curNode,BAD_CAST "Cache");

if(szAttr!=NULL)
{

Cache=atoi((const char *)szAttr);
}
xmlFree(szAttr);
}

if ((!xmlStrcmp(curNode->name, (const xmlChar *)"SimFile")))
{
xmlChar* szAttr = xmlGetProp(curNode,BAD_CAST "Type");

if(szAttr!=NULL)
{
if((!xmlStrcmp(szAttr,(const xmlChar *)"PlainFilm")))
{

xmlNodePtr FileNodes=curNode->children;

int i=0;

while(FileNodes!=NULL)
{
if((!xmlStrcmp(FileNodes->name,(const xmlChar *)"FILE")))
{
szAttr = xmlGetProp(FileNodes,BAD_CAST "name");

if(szAttr!=NULL)
{
/*SIM_PLAIN[i].Name=(char*)szAttr;*/
strcpy(simulation.SIM_PLAIN[i].Name,(char*)szAttr);

}
szAttr=xmlGetProp(FileNodes,BAD_CAST "sliceNum");

if(szAttr!=NULL)
{
simulation.SIM_PLAIN[i].Num=atoi((char*)szAttr);

}

i++;

}
FileNodes=FileNodes->next;
}
xmlFree(FileNodes);
simulation.SIM_PLAIN[i].flag=0;

}
if((!xmlStrcmp(szAttr,(const xmlChar *)"Spiral"))){

xmlNodePtr FileNodes=curNode->children;

int i=0;

while(FileNodes!=NULL)
{
if((!xmlStrcmp(FileNodes->name,(const xmlChar *)"FILE")))
{
szAttr = xmlGetProp(FileNodes,BAD_CAST "name");

if(szAttr!=NULL)
{
/*SIM_SPIRAL[i].Name=(char*)szAttr;*/
strcpy(simulation.SIM_SPIRAL[i].Name,(char*)szAttr);

}
szAttr=xmlGetProp(FileNodes,BAD_CAST "sliceNum");

if(szAttr!=NULL)
{
simulation.SIM_SPIRAL[i].Num=atoi((char*)szAttr);

}
i++;
}
FileNodes=FileNodes->next;
}
xmlFree(FileNodes);
simulation.SIM_SPIRAL[i].flag=0;

}
if((!xmlStrcmp(szAttr,(const xmlChar *)"axial")))
{
xmlNodePtr FileNodes=curNode->children;

int i=0;

while(FileNodes!=NULL)
{
if((!xmlStrcmp(FileNodes->name,(const xmlChar *)"FILE")))
{
szAttr = xmlGetProp(FileNodes,BAD_CAST "name");

if(szAttr!=NULL)
{
/* SIM_AXIAL[i].Name=(char*)szAttr;*/
strcpy(simulation.SIM_AXIAL[i].Name,(char*)szAttr);

}
szAttr=xmlGetProp(FileNodes,BAD_CAST "sliceNum");

if(szAttr!=NULL)
{
simulation.SIM_AXIAL[i].Num=atoi((char*)szAttr);

}
i++;
}
FileNodes=FileNodes->next;
}
xmlFree(FileNodes);
simulation.SIM_AXIAL[i].flag=0;

}
}
xmlFree(szAttr);

}
curNode = curNode->next;

}

xmlFreeDoc(doc);
/*return 0;*/

}

有什么不明白的再问吧!

㈡ 怎么样C语言解析一个XML文件中的信息,题目很详细,跪求高人指点。

这个要求不需要作XML的解析,用字符串搜索功能就足够了,把网页内容读出之中按字符串搜索就可以找到<lat>和<lng>。
比如让指针 char * page 指向读取得到的网页内容,就可以这样得到经度lat和纬度lng:

#include <string.h>
#include <stdio.h>

double lat, lng;
char * str_lat, *str_lng;

str_lat = strstr(page, "<lat>"); /*搜索字符串<lat>的位置*/
sscanf(str_lat+5, "%lf", &lat); /*从搜索到的位置之后读取一个浮点数作为纬度lat*/

str_lng = strstr(page, "<lng>");
sscanf(str_lng+5, "%lf", &lng); /*类似地,读出经度lng*/

㈢ 用c++怎么编写xml解析器

我们都是用第三方的
要是写得出,要么开源掉,要么卖钱了
写这种东西一般估计也就学生会写吧,真正做的人更乐意第三方库巴

㈣ 新手求教 FTP上解析XML

首先你要弄一个edtftpj.jar的jar包。我用的2.2.2版本的。
然后申明一个FileTransferClient。
FileTransferClient ftp = new FileTransferClient();
接下来设置一些东西,下面4个设置是必须的:
ftp.setRemoteHost("ftp服务器的IP地址");
ftp.setRemotePort("ftp服务器的端口号");
ftp.setUserName("你用来登陆的账号");
ftp.setPassword("你用来登陆的密码");

然后……连接。
ftp.connect();

linux脚本xml文件ftp传输,xml文件如下: xml文件是服务器发给的,没有换行,连着写的。

尝试用Ultraedit编辑文件,然后保存为unix格式,
通过ftp
bin模式上传试一下

㈥ ftp上传文件(*.xml格式所有文件)上传失败,怎么处理

重新上传或改一下扩展名

㈦ 利用 WebClient函数下载ftp服务器上xml问题

为什么要使用ftp呢, 把那个upload.xml 放到web目录下 使用http下载

㈧ 关于ftp下载的设计

我放在service中去下载了,每隔一分钟去调用下接口,判断有没有任务,每个任务里面都是一个ftp的xml,然后下载到本地去解析的,每个xml里面又定义ftp素材,现在发现for循环的时候,有的xml没有下载下来,还不知道问题出在哪里了!

热点内容
python对齐打印 发布:2024-11-09 01:46:07 浏览:174
编译vbox61 发布:2024-11-09 01:42:12 浏览:915
超声波存储环境 发布:2024-11-09 01:41:33 浏览:284
国外访问学者研修计划 发布:2024-11-09 01:36:38 浏览:384
如何上传动态头像 发布:2024-11-09 01:33:52 浏览:935
怎么购买云存储空间 发布:2024-11-09 01:23:37 浏览:782
如何把安卓机上的图片备份 发布:2024-11-09 00:49:58 浏览:263
android分享微信 发布:2024-11-09 00:49:14 浏览:977
数列极限运算法则 发布:2024-11-09 00:48:37 浏览:896
k线公式源码 发布:2024-11-09 00:35:24 浏览:785