+ -
当前位置:首页 → 问答吧 → 怎样从一个string中读出XML的元素

怎样从一个string中读出XML的元素

时间:2011-12-18

来源:互联网

我在做一个航班web service的调用程序, 用gsoap生成的代理类从航班web service中得到了一个返回的char* 类型的字符串, 是XML格式的, 是某一天的航班信息,但又不是一个完整的XML文档,应该只是一部分
下面是这个字符串:
XML code

<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<Airlines xmlns="">
<AirlinesTime diffgr:id="AirlinesTime1" msdata:rowOrder="0">
<Company>山东航空公司</Company>
<AirlineCode>SC1947</AirlineCode>
<StartDrome>浦东国际机场</StartDrome>
<ArriveDrome>双流国际机场</ArriveDrome>
<StartTime>07:55</StartTime>
<ArriveTime>11:25</ArriveTime>
<Mode>320</Mode>
<AirlineStop>0</AirlineStop>
<Week>123456日</Week>
</AirlinesTime>
<AirlinesTime diffgr:id="AirlinesTime2" msdata:rowOrder="1">
<Company>中国国际航空公司</Company>
<AirlineCode>CA1947</AirlineCode>
<StartDrome>浦东国际机场</StartDrome>
<ArriveDrome>双流国际机场</ArriveDrome>
<StartTime>07:55</StartTime>
<ArriveTime>11:25</ArriveTime>
<Mode>320</Mode>
<AirlineStop>0</AirlineStop>
<Week>123456日</Week>
</AirlinesTime>
</Airlines>
</diffgr:diffgram>


另外还返回了一个schema:
XML code

<xs:element name="Airlines" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="AirlinesTime">
<xs:complexType>
<xs:sequence>
<xs:element name="Company" type="xs:string" minOccurs="0"/>
<xs:element name="AirlineCode" type="xs:string" minOccurs="0"/>
<xs:element name="StartDrome" type="xs:string" minOccurs="0"/>
<xs:element name="ArriveDrome" type="xs:string" minOccurs="0"/>
<xs:element name="StartTime" type="xs:string" minOccurs="0"/>
<xs:element name="ArriveTime" type="xs:string" minOccurs="0"/>
<xs:element name="Mode" type="xs:string" minOccurs="0"/>
<xs:element name="AirlineStop" type="xs:string" minOccurs="0"/>
<xs:element name="Week" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>


我怎么能把航班信息从中读出来. 急 向用过的大牛求救...

作者: a369601152   发布时间: 2011-12-18

自己用字串处理找下应该不难吧
也可用boost的regex(如果你会用正则且你的编译器支持)

作者: keiy   发布时间: 2011-12-18