王朝网络
分享
 
 
 

XML格式化(缩进)输出的方法

王朝other·作者佚名  2006-02-04
宽屏版  字体: |||超大  

1. 网上找了好些都是孟子E章的XSLT方法,地址:http://blog.csdn.net/net_lover/archive/2004/07/27/53601.aspx

2. 本人也不相信没有其他方便的方法进行转换,下面这个方法倒是可以用用,比较简单。不过这个接口说不定在比较低版本的MSXML(Microsoft® XML Core Services)库里面没有呢!这种方法使用的是SAX,一直使用MSXML都是DOM方式,孟子E章介绍的也是DOM。XML直接从SAX方式生成到DOM方式的范例http://msdn.microsoft.com/library/en-us/xmlsdk/html/6139a6fe-7d4c-449d-9e36-60b68be1de71.asp?frame=true

从这个地址:http://msdn.microsoft.com/library/en-us/xmlsdk/html/9e353ac7-ab8b-44aa-9fbc-12ca715ab1e7.asp?frame=true可以看到MSXML版本发展的历史,看来是要MSXML3.0以上才有SAXXMLReader。地址:http://www.99inf.net/Article/netjc/xmlapp/2005-05-24/22932.html

<%

Dim rdr, wrt

set rdr = Server.CreateObject("MSXML2.SAXXMLReader.4.0")

set wrt = Server.CreateObject("MSXML2.MXXMLWriter.4.0")

wrt.indent = True

Set rdr.contentHandler = wrt

'--------------------------------------------

' 可以解析 xml文件、xmlDom对象、xml字符串

' rdr.parseURL ("books.xml");

' rdr.parse (xmlDoc);

' rdr.parse ("<article><author>无心(cuixiping)</author></article>");

'--------------------------------------------

rdr.parse "<article><author>无心(cuixiping)</author></article>"

response.write ("<xmp>")

' 和SAXXMLReader类似output输出也可以为DOMDocument 地址:http://msdn.microsoft.com/library/en-us/xmlsdk/html/5ff0aeb7-02cb-4fe4-ad78-0c48208e0282.asp?frame=true

response.write (wrt.output)

response.write ("</xmp>")

%>

C++ Builder中的使用方法,感觉不是百发百中,有一些会莫名其妙无法输出,另外一个致命的错误是,默认会给XML加上一个处理信息encoding="UTF-16" standalone="yes",而且是强加的,就算载入的时候是别的encoding,也会变成UTF-16。查找相关资料可能因为是COM里面处理字符串是BSTR的缘故。

//TCOMISAXXMLReader i_xmlreader;

//TCOMIMXWriter i_xmlwriter;

//Msxml2_tlb::IXMLDOMDocumentPtr doc;

if ((IMXWriter *)i_xmlwriter == NULL)

{

i_xmlwriter = CoMXXMLWriter::Create();

i_xmlwriter->indent = VARIANT_TRUE;

}

if ((ISAXXMLReader *)i_xmlreader == NULL)

{

i_xmlreader = CoSAXXMLReader::Create();

i_xmlreader->putContentHandler((IMXWriter *)i_xmlwriter);

}

i_xmlwriter->set_output((IDispatch *)doc);

i_xmlreader->parse(doc->get_xml());

//i_xmlreader->parse((IDispatch *)doc);

3. 先保存成一个文件,然后利用CFile将文件内容按Tag换行.然后顺序调用msxml的load和save重新打开和保存该文件。这时你再用记事本打开看看! 这种方法也算一种方法,比较笨的方法。

地址:http://www.5iv.net/067/how162267.htm

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有