你的位置:首页 > 操作系统

[操作系统]加载和解析XML文件


加载和解析

1.

  <?

  <root>              表示根节点

  <CityName>北京</CityName>  北京 一个结点, CityName是结点名, 北京结点值

  <Item key="1" value="A"></Item>    key="1"是结点属性, key属性名, "1"属性值

  注意:

<??><root>  <systemConfig>   <CityName>北京</CityName>   <CityCode>201</CityCode>   <ParentCityCode> 0</ParentCityCode>   <areaCode>010</areaCode>   <AgreementUrl></AgreementUrl>   <IntentionLevel>                <Item key="1" value="A"></Item>    <Item key="2" value="B"></Item>    <Item key="3" value="C"></Item>   </IntentionLevel>   <ComeChannel>                  <Item key="1" value="报纸"></Item>    <Item key="2" value="杂志"></Item>   </ComeChannel>   <BuyCarBudget>                <Item key="1" value="40-50万"></Item>    <Item key="2" value="50-60万"></Item>   </BuyCarBudget>   <IntentionColor>     <Item key="1" value="红"></Item>     <Item key="2" value="黄"></Item>   </IntentionColor>  </systemConfig></root>

2.

  1.配置
  //(1)添加头文件搜索路径  //   Header Search Paths-> /usr/include/lib//(2)添加二进制库  // Link library -> li//(3)源文件添加编译选项  //   -fno-objc-arc  //(4)添加头文件  // #import "GData

 

  2.GData使用

 //1.加载和解析  NSString *path = [[NSBundle mainBundle] pathForResource:@"" ofType:nil];  NSData *data = [[NSData alloc] initWithContentsOfFile:path];  //GData//initWithData 使用NSData初始化,就是解析  GData0 error:nil];    //2.获取指令语法 XPath  //CityName路径: /root/systemConfig/CityName    NSArray *array = [doc nodesForXPath:@"/root/systemConfig/CityName" error:nil];  GData*element = [array firstObject];  NSLog(@"name = %@ value = %@",element.name,element.stringValue);    //获取指定节点的属性  NSArray *items = [doc nodesForXPath:@"/root/systemConfig/ComeChannel/Item" error:nil];  GData*item = [items firstObject];  //取属性,属性使用GData  for(GDatain item.attributes)  {    NSLog(@"name = %@ value = %@",attr.name,attr.stringValue);  }    //4.获取所有指定名字的节点,不管位置  //XPath语法://Item    NSArray *allItem = [doc nodesForXPath:@"//Item" error:nil];  for(GDatain allItem)  {    NSLog(@"name = %@",e.name);  }    //5.获取所有指定名字的属性,不管位置  //XPath语法: //@value  NSArray *allValue = [doc nodesForXPath:@"//@value" error:nil];  for(GDatain allValue)  {    NSLog(@"value = %@",e.stringValue);  }    //6.逐层遍历//获取根节点  //GData//获取子节点  //root.children  //获取子节点个数  //root.childrenCount  //获取指定名字的子节点  //root elementsForName

3.更加详细的

  XPath 语法

  链接网址:http://www.w3school.com.cn/xpath/xpath_syntax.asp