xml解析

xml文档

<?xml version="1.0" encoding="utf-8" ?>
<root>
    <systemConfig>
      <CityName>北京</CityName>
      <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>



XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows, Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果



 找到Header Search Path  把${SDK_ROOT}/usr/include/libxml2添加进去


  • 1某些起始标签可以选择性出现结束标签或者隐含了结束标签。
  • 2某些起始标签要求必须出现结束标签,例如HTLM<script>脚本标签。
  • 3标签可以以任何顺序嵌套。即使结束标签不按照起始标签的逆序出现也是允许的,例如,This is asamplestring是正确的。
  • 某些特性要求必须包含值,例如<图片 ="百度百科.jpg">中的源特性。
  • 4某些特性不要求一定有值,例如中的不换行nowrap)特性。
  • 5定义特性的两边有没有加上双引号都是可以的,所以都是允许的。

NSString*str=[NSString stringWithContentsOfFile:@"/Users/ms/Desktop/XML备课/XML备课/xml.txt" encoding:NSUTF8StringEncoding error:nil];

        NSLog(@"[===%@",str);

        

        //文档节点

 DDXMLDocument * document = [[DDXMLDocument alloc]initWithXMLString:str options:0 error:nil];

        

        //获取根节点

        DDXMLElement * root = [document rootElement];

        

        //NSLog(@"root==%@",[root attributes]);

        

        DDXMLElement * systemConfig = [[root  elementsForName:@"systemConfig"] firstObject];

        //获取所有子节点

        NSArray*childrenArray=[systemConfig children];

        //获取第一个节点

        DDXMLElement*cityName=[childrenArray firstObject];

        NSLog(@"%@~~%@~~%@",cityName.stringValue,cityName.XMLString,cityName.name);

        //使用xpath语法获取到所有的item子节点

        

        NSArray*xpathConfigChildrenArray=[systemConfig nodesForXPath:@"//Item" error:nil];

        

        

        for (DDXMLElement*ele in xpathConfigChildrenArray) {

            //获取属性

            NSArray*attArray=[ele attributes];

            

            

            for (DDXMLElement*attEle in attArray) {

                NSLog(@"Item~~~~%@~~%@~~%@",attEle.stringValue,attEle.XMLString,attEle.name);

            }

            

        }

        

 //如果网络回来的数据

    NSString* dataxml = [[NSString alloc]initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]] encoding:NSUTF8StringEncoding];



NSString * xmlTest = [NSString stringWithContentsOfFile:XMLPATH encoding:NSUTF8StringEncoding error:nil];

    //创建document

    

    //取出所有节点

    DDXMLDocument * document = [[DDXMLDocument alloc]initWithXMLString:xmlTest options:0 error:nil];

    

    

    //取出节点下的内容

    DDXMLElement * root = [document rootElement];

    NSLog(@"------%@------%@------%@",root.XMLString,root.stringValue,root.name);

    

    //取出systemConfig

    DDXMLElement * systemConfig = [[root children] firstObject];

    

    

    //取出北京

    DDXMLElement * cityName = [[systemConfig children] firstObject];

    

    NSLog(@"---%@---%@---%@",cityName.XMLString,cityName.stringValue,cityName.name);

    

    DDXMLElement * IntentionLevel = [[systemConfig children] objectAtIndex:6];

    

    NSLog(@"--%@",IntentionLevel);

    

    NSArray * array = [systemConfig nodesForXPath:@"//Item" error:nil];

    

    

    DDXMLElement * news = array[4];

    

    // NSLog(@"---%@---%@---%@",news.XMLString,news.stringValue,news.name);

    //取出标签头里面的属性值

    //数组取第0位就是key1

    DDXMLElement * newsAtt = [[news attributes] firstObject];

   // NSLog(@"---%@---%@---%@",newsAtt.XMLString,newsAtt.stringValue,newsAtt.name);







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值