+ -
当前位置:首页 → 问答吧 → 关于用expat解析XML文件~

关于用expat解析XML文件~

时间:2011-06-29

来源:互联网

小弟是expat和c的双料新人,所以对这方面不熟悉,现在boss叫我做个project,为了赶工这部分我想求助下大家,我这里有个xml文件:
XML code
<?xml version="1.0" encoding="ISO-8859-1"?>
<note xmlns="RoxPro" xmlns:xsi="C:/Users/RoxPro/My Documents/" xsi:schemaLocation="RoxPro C:\Users\RoxPro\Documents\conf1.xsd">
    <conf>
        <network>
            <config_interface_loopback>
                <option>
                    <ifname>lo</ifname>
                    <proto>static</proto>
                    <ipaddr>127.0.0.1</ipaddr>
                    <netmask>255.0.0.0</netmask>
                </option>
            </config_interface_loopback>
            <config_interface_lan>
                <option>
                    <ifname>eth0</ifname>
                    <type>bridge</type>
                    <proto>static</proto>
                    <ipaddr>192.168.1.1</ipaddr>
                    <netmask>255.255.255.0</netmask>
                </option>
            </config_interface_lan>
            <config_interface_wifi>
                <option>
                    <proto>static</proto>
                    <ipaddr>192.168.2.1</ipaddr>
                    <netmask>255.255.255.0</netmask>
                </option>
            </config_interface_wifi>
        </network>
        <wireless>
            <config_wifi-device_radio0>
                <option>
                    <type>atheros</type>
                    <channel>auto</channel>
                    <macaddr>00:15:6d:fc:71:ac</macaddr>
                    <disable>0</disable>
                </option>
            </config_wifi-device_radio0>
            <config_wifi-iface>
                <option>
                    <device>radio0</device>
                    <network>wifi</network>
                    <mode>ap</mode>
                    <ssid>OpenWrt</ssid>
                    <encryption>none</encryption>
                </option>
            </config_wifi-iface>
        </wireless>
    </conf>
</note>


我想解析他,分别生成两个文件:

第一个叫network:
XML code
config interface loopback
        option ifname   lo
        option proto    static
        option ipaddr   127.0.0.1
        option netmask  255.0.0.0

config interface lan
        option ifname   eth0
        option type     bridge
        option proto    static
        option ipaddr   192.168.1.1
        option netmask  255.255.255.0

config interface wifi
        option proto    static
        option ipaddr   192.168.2.1
        option netmask  255.255.255.0


第二个叫wireless:
XML code
config wifi-device  radio0
        option type     atheros
        option channel  auto
        option macaddr  00:15:6d:fc:71:ac

        # REMOVE THIS LINE TO ENABLE WIFI:
        option disabled 0

config wifi-iface
        option device   radio0
        option network  wifi
        option mode     ap
        option ssid     OpenWrt
        option encryption none


哪位expat高人可以指导一下,这个C源文件应该怎么写?如果太麻烦,只写network一个的文件也成,我来进行别的文件的修改,感谢。

作者: RoxPro   发布时间: 2011-06-29

没有哪位高手可以解答下么?

作者: RoxPro   发布时间: 2011-07-01