//加载指定资源XML结构
    protected XmlStruct LoadResourceXMLByXmlStruct(XmlStruct xmlStruct, string structName)
    {
        xmlStruct = new XmlStruct();

        XmlResourceStruct resourceStruct = GetResourceXMLStructFromMainXML(XMLStaticString._resourceFile, structName);

        xmlStruct.xmlName        = resourceStruct.resName;
        xmlStruct.xmlPackageName = resourceStruct.resPackageName;
        xmlStruct.xmlPath        = resourceStruct.resPath;
        xmlStruct.xmlVersion     = resourceStruct.resVersion;

        if (string.IsNullOrEmpty(xmlStruct.xmlPath))
        {
            return(xmlStruct);
        }

        XmlDocument xml = LoadXml(xmlStruct.xmlPackageName + "/" + xmlStruct.xmlPath);

        XmlNodeStruct nodeStruct   = new XmlNodeStruct();
        XmlNode       resourceNode = xml.SelectSingleNode(XMLStaticString._resources);

        nodeStruct.xmlNodeName = XMLStaticString._resourceFile;
        //加载XML的节点
        nodeStruct.xmlNode = resourceNode.SelectSingleNode(nodeStruct.xmlNodeName);
        //加载"ResourceFile"节点下的所有资源
        nodeStruct = LoadResourcesByXMLNode(nodeStruct);
        xmlStruct.xmlNodeStruct = nodeStruct;

        return(xmlStruct);
    }
 //加载资源XML
 protected void LoadResourceXML()
 {
     m_audioXML    = LoadResourceXMLByXmlStruct(m_audioXML, m_audioXMLName);
     m_textureXML  = LoadResourceXMLByXmlStruct(m_textureXML, m_textureXMLName);
     m_prefabXML   = LoadResourceXMLByXmlStruct(m_prefabXML, m_prefabXMLName);
     m_materialXML = LoadResourceXMLByXmlStruct(m_materialXML, m_materialXMLName);
     m_animatorXML = LoadResourceXMLByXmlStruct(m_animatorXML, m_animatorXMLName);
     m_xmlXML      = LoadResourceXMLByXmlStruct(m_xmlXML, m_xmlXMLName);
     m_jsonXML     = LoadResourceXMLByXmlStruct(m_jsonXML, m_jsonXMLName);
 }
Example #3
0
        public void RunXmlToCodeTestForStruct(string id)
        {
            string      xml      = GetXml(id);
            XmlDocument document = new XmlDocument();

            document.LoadXml(xml);

            XmlStruct @struct = new XmlStruct();

            @struct.ConstructFromXml(document.GetFirstChild("struct"), document);

            string generatedCode = SerializeToCode(@struct);
            string expectedCode  = GetExpectedResult(id);

            Assert.AreEqual(expectedCode, generatedCode);
        }
    //从指定XML中获取指定的XML节点
    protected XmlResourceStruct GetNodeStructByXMLStruct(XmlStruct xml, string resParentNodeName, string resName)
    {
        XmlNodeStruct     parentNode = new XmlNodeStruct();
        XmlResourceStruct resStruct  = new XmlResourceStruct();

        parentNode = xml.xmlNodeStruct;

        for (int i = 0; i < parentNode.xmlResourceStructArray.Length; i++)
        {
            if (resName.Equals(parentNode.xmlResourceStructArray[i].resName))
            {
                resStruct = parentNode.xmlResourceStructArray[i];
                break;
            }
        }
        return(resStruct);
    }