Windows Phone 7 开发笔记:读取 XML

经过几天的努力,终于开始写 XML Parsing 的部分了。本来应该先写让图片变透明、利用 PNG 制作动画的心得,但是加了 XML Parsing 之后暂时无法到达游戏页面。所以那篇心得过两天再写。

照例首先贴一张开始画面的截图。(取材:《恋爱蜡笔:空之艺术》。看过《只有神知道的世界》的人都知道这款游戏……)

这个页面完全是根据下面这个 XML 文件生成的。没有任何 hard-coded 代码。

<?xml version="1.0" encoding="utf-8" ?>
<TGGe>
  <TitleScreen>
    <Background Image="Textures/Backgrounds/TitleBackground" Music="Sounds/Musics/Title" />

    <Menu Background="Textures/Backgrounds/SelectionBackground" Range="0,70,400,480">
      <Entry Action="f:StartGame">开始游戏</Entry>
      <Entry Action="">读取游戏</Entry>
      <Entry Action="">系统选项</Entry>
      <Entry Action="">制作团队</Entry>
      <Entry Action="f:ExitGame">退出游戏</Entry>
   </Menu>

  </TitleScreen>
</TGGe>

这里需要注意的是,这个 XML 并不是 XnaContent 格式,所以不能编译,只能纯引用。所以属性要设置成下面这样。

563_script.png

因为使用了 XElement 作为 XML Parser,所以只能有一个根标签(Root Tag,在这里就是 TGGe)。最重要的一点,根标签不参与解析。所以,如果使用 <TitleScreen> 作为根标签,则无法找到所有的设置。

XElement 的使用方法很简单,就使用 .Element() 方法依次向下解析就好了。

this.scriptLoader = XElement.Load("Script.xml");

// Parse XML
XElement screenConfig = scriptLoader.Element("TitleScreen");
XElement backgroundBlock = screenConfig.Element("Background");
XElement titleBlock = screenConfig.Element("Title");
XElement pictureBlock = screenConfig.Element("Picture");
XElement menuConfig = screenConfig.Descendants("Menu").First();

下一步是写 Action 解析执行部分。

添加新评论