第02章 MXML
- 格式:ppt
- 大小:164.00 KB
- 文档页数:19


XAML开发⼊门之⽤VS2005开发XAML程序(运⾏所需软件环境)俗话说,⼯欲善其事必先利其器。
在开始利⽤xaml开发wpf程序之前,我们最希望的应该是⼀个强⼤的wpf开发⼯具。
在本章中,将介绍创建和运⾏⼀个xaml程序所必须的软件环境,⽽后对⼀个xaml⼯程的基本结构进⾏详细的说明,最后就是如何编译和运⾏⼀个wpf程序。
注意,本章需要的知识点虽然不是很复杂,但是仍然需要您具备⼀些或html⽅⾯的基础知识,这样在对xaml的学习和理解⽅⾯才不⾄于太困难。
运⾏xaml所需的软件环境 虽然xaml是专门为vista操作系统设计的,但是我们也可以在windows xp和windows server 2003上使⽤它。
这样使得就算vista操作系统还没有正式发布,开发⼈员也可以在windows xp和windows server 2003上对xaml和microsoft windows sdk进⾏预先的学习。
下⾯是各个可以使⽤xaml的操作系统版本: 1. windows xp sp2 2. windows server 2003 sp1 3. vista 在windows xp sp2和windows server 2003 sp1的操作系统上,我们⾸先要安装.net framework 3.0,它在.net framework 2.0的基础上还添加了对wpf、wcf、wf和cardspace等诸多功能的⽀持。
但是⽆论是使⽤的是何种操作系统,您都必须安装microsoft windows sdk,在该软件开发包中,它包含使⽤xaml设计⽤户界⾯时所需的类库、⼯具以及⼀系列的开发⽂档和代码⽰例。
如果你打算使⽤winfx extensions to visual studio 2005来开发xaml和wpf程序,那么你需要在安装microsoft windows sdk前安装visual studio 2005。
Mini-XML 入门这一章描述了如何写一个程序使用Mini-XML来访问XML文件中的数据.Mini-XML提供了以下功能:•在内存中创建和管理XML文档的函数.•读UTF-8和UTF-16 编码的XML文件和字符串.•写UTF-8 编码的XML文件和字符串.•支持任意的元素名称,属性以及属性值,没有任何其他限制,仅受限于有效内存.•支持整形、浮点、自定义("CDA TA")和文本数据类型在"叶"节点.•提供"查找"、"索引"、以及"步进"函数可以很简单的访问XML文档中的数据.Mini-XML 不进行基于"XML方案(SCHEMA)"文件或者其他内容源定义信息的校验和其他类型的处理,也不支持其他组织所要求的XML规范.基础知识Mini-XML 提供的一个你需要包含的头文件:#include <mxml.h>把Mini-XML库连接到你的应用程序使用-lmxml 选项:gcc -o myprogram myprogram.c -lmxml ENTER如果你已经安装pkg-config(1) 软件, 你可以使用它来为你的安装确定适当的编译和连接选项:pkg-config --cflags mxml ENTERpkg-config --libs mxml ENTER节点每一块XML文件中的信息片断(元素、文本、数字)是一个存储在内存中的"节点(nodes)" .节点使用mxml_node_t结构进行定义. 它的type成员变量定义了节点类型(element, integer,.译者:节点类型定义枚举参见:mxml_type_e。
析器有些不同,其中整数、浮点、和文本节点是指在一个XML元素中一系列的使用空格作为分割的值,每个元素可以拥有多个以上节点,并可以选择使用空格分开,如:<abc>aa bb cc</abc>,Mini-MXML在使用参数:MXML_TEXT_CALLBACK进行载入时,将在abc元素下面生成3个text类型的子节点。
C语⾔读写XML⽂档:libmxml库初学笔记(Mini-XML)使⽤XML存取数据很⽅便。
官⽹有详尽的英⽂⼿册,这⾥还找到了⼀份中⽂⼿册:这⾥只放⾃⼰学习时写的测试代码,有兴趣的同学可以做个参考。
#include<mxml.h>//创建xml⽂档//声明创建 xml树需要的 node节点mxml_node_t* xml; // xml格式标记mxml_node_t* keys_n; // 词汇库,unkey-词汇主键的⽗节点mxml_node_t* unikey_n; //⼀条词汇记录的基本单元,mark-词汇标签和 explain-词汇释义的⽗节点mxml_node_t* elem_n; //创建 mark explain 的节点//在内存中通过挂载node节点,构建 xml treexml=mxmlNewXML("1.0");//创建xml⽂档格式标记,必须,xml tree的根keys_n=mxmlNewElement(xml, "keys");//新节点,名为keys,挂载到 xmlunikey_n=mxmlNewElement(keys_n, "unikey");//新节点,名为unikey,挂载到 keysmxmlElementSetAttr(unikey_n, "word", "go alpha");//为unikey_n的节点设置属性:word="go alpha"elem_n=mxmlNewElement(unikey_n, "elem");//新节点,名为elem, 挂载到unikeymxmlElementSetAttr(elem_n, "element", "mark");//为elem_n的节点设置属性:element="mark"mxmlNewText(elem_n, 0, "AI");//为elem_n的节点新增⽂本,⽂本前的whitespace(空格)个数为0,内容为”AI”elem_n=mxmlNewElement(unikey_n, "elem");//新节点,名为elem, 挂载到unikeymxmlElementSetAttr(elem_n, "element", "explain");//为elem_n的节点设置属性:element="explain"mxmlNewText(elem_n, 0, "Google的AI程序");//为elem_n的节点新增⽂本,⽂本前的whitespace(空格)个数为0//将内存中创建的节点树写⼊⽂件FILE *fp = fopen("/Users/yaou/Area/tmp/xmltest-1.xml", "w");mxmlSaveFile(xml, fp, MXML_NO_CALLBACK);//关闭⽂件fclose(fp);//释放内存中的节点树mxmlDelete(xml);之后⼿动在新⽂件xmltext-1.xml ⾥添加⾥⼀些节点。