//加载指定资源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); }
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); }