XML报文头和报文体各王珞丹真爱体是什么么?怎么把他分开在程序里

浅谈Objective-C实体转化为XML报文字符串和解析XML为实体-IOS-第七城市
浅谈Objective-C实体转化为XML报文字符串和解析XML为实体
前两个月,由于公司项目需要,业余时间,迅速掌握入门Objective-c基本语法,由于Objective-c使用面向对象编程和MVC模式,很快就心里有底了,呵呵。最近忙于开发游戏服务器,Objective-C又一个月没有学习和敲过代码了,很快也忘了基本语法差不多,趁今天有空,再次回顾一下代码。介绍一下,实体与XML报文字符串互相转化。大家知道,Objective-C创建一个类之前,必须声明一个接口,然后再创建一个实现该接口类。 1 // 2 //
EntityConvertXML.h 3 //
NoteRecord 4 // 5 //
Created by 李 航杰 on 11-11-21. 6 //
Copyright 2011年 LeeHonGee. All rights reserved. 7 // 8
9 #import &Foundation/Foundation.h&10 @class P11 12 @interface EntityConvertXML : NSObject {13 14 }15 16 +(NSString *) entityConvertXMLString:(Person*)17 +(Person*) getEitityFromXmlConvert:(NSString*) responseXML;18 @end接着,实现该接口类,这里我使用了懒汉单例模式,代码如下: 1 // 2 //
EntityConvertXML.m 3 //
NoteRecord 4 // 5 //
Created by 李 航杰 on 11-11-21. 6 //
Copyright LeeHonGee. All rights reserved. 7 // 8
9 #import "EntityConvertXML.h"10 #import "Person.h"11 #import "XmlParser.h"12 @implementation EntityConvertXML13 static EntityConvertXML *sharedInstance=nil;14 +(EntityConvertXML*) sharedInstance{15
if (sharedInstance==nil) {16
sharedInstance=[[[self alloc] init] autorelease];17
return sharedInstance;19 }20 /**21
使用单例模式22
+(id) allocWithZone:(NSZone*) zone是覆盖方法23
*/24 +(id) allocWithZone:(NSZone *)zone{25
@synchronized(self){26
if (sharedInstance==nil) {27
sharedInstance=[super allocWithZone:zone];28
return sharedI29
return nil;31
}32 }下面是实体于XML字符串互相转化代码 1 /** 2
* Author 李航杰 3
* 用途:这个方法主要实现对实体Class进行封装成XML报文 4
* 对于局部变量,自动释放池清空对象时,进行的,不需要使用显式的释放语句 5
*/ 6 +(NSString *) entityConvertXMLString:(Person*) person{ 7
NSMutableString *xmlBody=[[NSMutableString alloc] init]; 8
[xmlBody appendFormat:@"%@",@"&?xml version=/"1.0/" encoding=/"UTF-8/" standalone=/"yes/"?&"]; 9
[xmlBody appendString:@"/n&Person&/n"];10
[xmlBody appendFormat:@"&countryNum&%@&/countryNum&/n",person.countryNum];11
[xmlBody appendFormat:@"&phone&%@&/phone&/n",person.phone];12
[xmlBody appendFormat:@"&name&%@&/name&/n",person.name];13
[xmlBody appendFormat:@"&email&%@&/email&/n",person.email];14
[xmlBody appendFormat:@"&gender&%@&/gender&/n",person.gender];15
[xmlBody appendFormat:@"&password&%@&/password&/n",person.password];
[xmlBody appendString:@"&/Person&"];17
return [xmlBody autorelease];18 }19 /**20
*@Author 李航杰21
*用途:使用XmlParser将XML报文字符串转化为实体对象22
*/24 25 +(Person*) getEitityFromXmlConvert:(NSString*) responseXML{26
XmlParser *parser = [[XmlParser alloc] init];27
Person *person=[[Person alloc] init];28
NSMutableArray *personArray = [parser fromXml:responseXML withObject:person];29
person = [personArray objectAtIndex:0];30
[parser release];31
return [person autorelease];32 }33 /**34
*记得急时释放资源,以免内存泄漏35
*/37 -(void) dealloc{38
[super dealloc];39 }40 41 @end本代码是之前入门时所创建,还没使用对实体转化进行代码复用,有时间再完善&创建者: & 上午10:11:08&&将soap报文(或xml)转换成对象_小组_ThinkSAAS
将soap报文(或xml)转换成对象
将soap报文(或xml)转换成对象
import java.io.ByteArrayInputS
import org.apache.axiom.om.OME
import org.apache.axiom.om.impl.builder.StAXOMB
import org.apache.axis2.databinding.utils.BeanU
import org.apache.axis2.engine.DefaultObjectS
import org.dom4j.D
import org.dom4j.DocumentH
public class XMLUtil
* @author : zKF27092
* @version: 1.0
* 描述 : 将XML字符串转换成对象
* 实现方法:将XML字符串转换成对象
* Copyright , Huawei Tech. Co., Ltd.
* @param &T&
* @param xml XML字符串
* @param elementName 对象XML根元素的名称
* @param cls 返回类型
@SuppressWarnings("unchecked")
public static &T& T xmlToBean(String xml, String elementName, Class&T& cls)
T object =
Document document = DocumentHelper.parseText(xml);
//如果不是SOAP返回的报文,是XML字符串则不需要这行代码
String beanXml = document.getRootElement().element("Body").element(
elementName).asXML();
OMElement omElement = new StAXOMBuilder(new ByteArrayInputStream(
beanXml.getBytes("UTF-8"))).getDocumentElement();
object = (T) BeanUtil.processObject(omElement, cls, null, true,
new DefaultObjectSupplier());
catch (Exception e)
e.printStackTrace();
用户评论(0)
开发技术学习小组列表
PHP开发框架
缓存Memcache
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
手机客户端
ThinkSAAS接收任何功能的Iphone(IOS)和Android手机的客户端定制开发服务
让ThinkSAAS更好,把建议拿来。
iphone扫码下载客户端C语言利用libxml2的xPath解析XML报文的问题_Java123社区微信号:java123msg |||[][]当前位置: &
& C语言利用libxml2的xPath解析XML报文的问题如题: 解析如下这样带有命名空间的报文: /*进行xpath查找*/ ?xml version=1.0 encoding=UTF-8 standalone=yes? #include stdlib.h Document xmlns=urn:cnaps:std:ibps:2010:tech:xsd:ccms.900.001.01 xmlns:xs=http://www.w3.org/2001/如题:解析如下这样带有命名空间的报文:/*进行xpath查找*/&?xml version=&1.0& encoding=&UTF-8& standalone=&yes&?&#include &stdlib.h&&Document xmlns=&urn:cnaps:std:ibps:2010:tech:xsd:ccms.900.001.01& xmlns:xs=&http://www.w3.org/2001/Schema&&&CmonConf&&GrpHdr&&MsgId&0001&/MsgId&&CreDtTm&T16:00:00&/CreDtTm&& &/GrpHdr&&/CmonConf&&/Document&对于 xmlns:xs=&http://www.w3.org/2001/XMLSchema& 这样的可以正常解析可对于 xmlns=&urn:cnaps:std:ibps:2010:tech:xsd:ccms.900.001.01& 这样的谢谢!在调用xmlXPathEvalExpression 之前要先如何做才能用xmlXPathEvalExpression 根据xPath正常解析出节点的内容呢?static void& /*//===================================================================== &
& /**& * section: XPath* synopsis: Evaluate XPath expression and prints result node set.* purpose: Shows how to evaluate XPath expression and register& *
known namespaces in XPath context.** usage: xpath1 &xml-file& &xpath-expr& [&known-ns-list&]* test: ./xpath1 test3.xml '//child2' & xpath1. diff xpath1.tmp xpath1. rm xpath1.tmp* author: Aleksey Sanin* copy: see Copyright for the status of this software.&?xml version=&1.0& encoding=&UTF-8&?&&document xmlns:xi=&http://www.w3.org/2003/XInclude&&&p&&q&fasdf&/q&&/p&&/document&运行命令行xpath1 test.xml //p//q &
/*#include &stdio.h&#include &string.h&#include &assert.h&#include &libxml/tree.h&#include &libxml/parser.h&#include &libxml/xpath.h&#include &libxml/xpathInternals.h&#if defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_SAX1_ENABLED)&q&fasdf&/q&static void usage(const char *name);int execute_xpath_expression(const char* filename, const xmlChar* xpathExpr, const xmlChar* nsList);int register_namespaces(xmlXPathContextPtr xpathCtx, const xmlChar* nsList);void print_xpath_nodes(xmlNodeSetPtr nodes, FILE* output);int&
fprintf(stderr,&Error: failed to register namespaces list \&%s\&\n&, nsList);main(int argc, char **argv) { &
/* Parse command line and process file */ &
if((argc & 3) || (argc & 4)) {fprintf(stderr, &Error: wrong number of arguments.\n&);usage(argv[0]);return(-1); &
cur-&ns-&href, cur-&name); &
/* Init libxml */
& /*初始化Parser一些工作*/ &
xmlInitParser(); &
LIBXML_TEST_VERSION &
/* Do the main job */ &
if(execute_xpath_expression(argv[1], BAD_CAST argv[2], (argc & 3) ? BAD_CAST argv[3] : NULL) & 0) {usage(argv[0]);return(-1);对于这种没有命名空间名字前缀的XML的解析 &
}* Returns 0 on success and a negative value otherwise. &
/* Shutdown libxml *//*释放Parser相关资源*/ &
xmlCleanupParser();该如何处理才能正常解析?*/ &
* this is to debug memory for regression tests &
xmlMemoryDump(); &
return 0;}/*** usage:* @name:
the program name. &
*(next++) = '\0';& ** Prints usage information.*/usage(const char *name) {/** &
assert(name); &
fprintf(stderr, &Usage: %s &xml-file& &xpath-expr& [&known-ns-list&]\n&, name); &
fprintf(stderr, &where &known-ns-list& is a list of known namespaces\n&); &
fprintf(stderr, &in \&&prefix1&=&href1& &prefix2&=href2& ...\& format\n&);} &
xmlXPathContextPtr xpathC& /*** execute_xpath_expression:* @filename:
the input XML filename.* @xpathExpr:
the xpath expression for evaluation.* @nsList:
the optional list of known namespaces in& *
&&prefix1&=&href1& &prefix2&=href2& ...& format.* Parses input XML file, evaluates XPath expression and prints results.**/int& execute_xpath_expression(const char* filename, const xmlChar* xpathExpr, const xmlChar* nsList) { &
xmlXPathObjectPtr xpathO&
assert(filename); &
assert(xpathExpr); &
/* Load XML document *//*装载xml文档*/ &
doc = xmlParseFile(filename); &
if (doc == NULL) {fprintf(stderr, &Error: unable to parse file \&%s\&\n&, filename);共3页顶一下(0)0%踩一下(0)0%------分隔线------上一篇: 下一篇: 栏目列表推荐内容?php $str = ?xml version=\1.0\ encoding=\utf-8\?coreg360getOfferCollectionRespons...
维护一个税务申报系统,功能是需要用户能在线导入或者录入其...
我的操作: 按照书上的例程,敲出以下代码(附后)。 按照书...
答:通常有两种方法可以实现,第一种采用(外部的)未解析通...
XML 错误会终止您的程序 XML 文档中的错误会终止你的 XML 程序。...xml报文格式_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
3页¥1.007页¥2.0012页免费27页免费35页2下载券12页免费3页免费27页免费7页免费
喜欢此文档的还喜欢67页5下载券55页5下载券12页免费8页1下载券275页5下载券
xml报文格式|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢

我要回帖

更多关于 王珞丹真爱体是什么 的文章

 

随机推荐