Linux下实现sax解析xml

Linux下实现sax解析xml,第1张

完全手打 需要图文教程找我 谢谢

51CTO的下载包含有注册机。

一、 注册exe4j,不注册生成的exe文件无法使用

二、 进入

到此画面,直接跳过第一步,从Projiect type开始 ,点击2. Projiect type,右边选择JAR in EXE mode Next。

三、(1)Short name of your application exe4j项目名称。(2)Output directory 导出的exe文件输出目录名称,填完这两项 Next

四、选择第一项:GUI application,桌面应用。Executable name:你输出的exe的文件的名字。Icon File:选择此项赋予你的exe文件一个图标。Next

五、看到class Path 点击+号,选择之前导出的jar包,然后到上面Main clas此处选择项目主类。

六、输入版本号 具体格式为Min1.3,Max1.7等。输入之后,看到此页面的Advanced Options ,点击,选择Search sequence,(此项目的为将生成的exe文件拥有跨平台使用,建议先将JRE文件拷贝到之前的Output directory目录下,因为需要一起打包。)点击加号,选择JRE,Next

七、选择Client hotspot VM 此后一直向后,等到最后一步,点击click******测试.

采纳吧

如果获取到节点话,就调用attributeValue(String name)方法获取里面的值就好了。

$cat test.sh

#!/bin/bash

if [ -z $1 ]then

echo 'USAGE:COMMAND FILENAME'

exit 0

fi

filename=record.txt

HOST=(`sed -n 's/.*>\(.*\)<\/host>/\1/p' $1`)

OIDG=(`sed -n 's/.*>\(.*\)<\/oidgroupname>/\1/p' $1`)

COMM=(`sed -n 's/.*>\(.*\)<\/communitystring>/\1/p' $1`)

DESC=(`sed -n 's/.*>\(.*\)<\/description>/\1/p' $1`)

FILE=(`ls -l $filename >/dev/null 2>&1 | awk '{print $8}'`)

if [ ! -z $FILE ]then

echo -e "host\t\toidgroupname\t\tcomm\t\tdesc" >$filename

fi

for((i=0i<${#HOST[@]}i++))do

echo -e "${HOST[i]}\t${OIDG[i]}\t${COMM[i]}\t\t${DESC[i]}" >>$filename

done

$./test.sh file

$cat record.txt

host oidgroupname comm desc

192.168.1.1 CpuUtilization_MF public 192.168.1.1_CPUUtilizaton

192.168.1.2 CpuUtilization_MF public 192.168.1.2_CPUUtilizaton

192.168.1.3 CpuUtilization_MF public 192.168.1.3_CPUUtilizaton

192.168.1.4 CpuUtilization_MF public 192.168.1.4_CPUUtilizaton

192.168.1.5 CpuUtilization_MF public 192.168.1.5_CPUUtilizaton

\ 解析简单xml文档的基本步骤就是如此简单,至于复杂的XML文档,解析的步骤,尤其是创建DOM树的方法有点不同,在这里便不作介绍。接下来,来讲一下困扰我多天的中文解析问题。我们知道,Xerces C++默认只支持节点名中文,至于节点值,属性值则不支持,即使解析出来的也是乱码,所以需要自己解决。在这里,我们选用UTF-8编码格式的XML文档。先来看一下乱码的原因,由于XML解析器解析的字符串都是 XMLCh*(typedef unsigned int XMLCh)格式的,一个字符占用一个字节,而汉字字符确要占用两个字节。故若不做适当的转换,汉字的输出结果就变成乱码了。在 http://www.vckbase.com/document/viewdoc/?id=738 提供了一种解决的方法,但是那个解决方案只有在locale环境为UTF-8的情况下你才可以看见正常的中文输出,在locale为GB18030等环境下,你的中文是乱码。但是在一种环境下可以正常显示,说明已经可以正常解析出来了,只是在不同环境的机器上需要进行码型转换,因此,我在他提供的类中又添加了两种方法,来进行码型转换:bool TranslatorUTF8ToChinese(string &strTranslatorMsg)//实现从UTF-8到GBK、GB2312等码型的转换bool UTF8_2_GB2312(char *in, int inLen, char *out, int outLen)这样,你就可以在把UTF-8编码的中文正常的解析打印出来了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8372113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存