Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ Core » How to construct a struct to get data from this XML?
How to construct a struct to get data from this XML? [message #55183] Fri, 16 October 2020 05:32 Go to next message
sinpeople is currently offline  sinpeople
Messages: 29
Registered: October 2020
Location: Singapore
Promising Member

Hi folks,

Greetings!

I looked into the XML reference code coming together with the installer package. It seems there is a relationship between struct members and XML elements. But I didn't find example to construct a struct to match with my XML contents. Please advise.
It seems it is a nested structure with customized value. How do I handle this into a C++ struct?

Many thanks!

<junction id="8303">
   <signal_program cycle="120" id="1" offset="0">
      <phase id="1" split="0.2">
         <signal_groups>
            <signal_group>2</signal_group>
            <signal_group>7</signal_group>
         </signal_groups>
         <min_green>7</min_green>
         <all_red>1</all_red>
         <amber>3</amber>
         <skip>0</skip>
      </phase>
      <phase id="2" split="0.2">
         <signal_groups>
            <signal_group>3</signal_group>
            <signal_group>8</signal_group>
         </signal_groups>
         <min_green>7</min_green>
         <all_red>3</all_red>
         <amber>3</amber>
         <skip>1</skip>
      </phase>
      <phase id="3" split="0.2">
         <signal_groups>
            <signal_group>10</signal_group>
            <signal_group>11</signal_group>
         </signal_groups>
         <min_green>7</min_green>
         <all_red>1</all_red>
         <amber>3</amber>
         <skip>0</skip>
      </phase>
      <phase id="4" split="0.2">
         <signal_groups>
            <signal_group>5</signal_group>
            <signal_group>10</signal_group>
         </signal_groups>
         <min_green>7</min_green>
         <all_red>3</all_red>
         <amber>3</amber>
         <skip>0</skip>
      </phase>
      <phase id="5" split="0.2">
         <signal_groups>
            <signal_group>10</signal_group>
            <signal_group>11</signal_group>
         </signal_groups>
         <min_green>7</min_green>
         <all_red>1</all_red>
         <amber>3</amber>
         <skip>0</skip>
      </phase>
   </signal_program>
    <Pedestrian>
   		<phase id="1" phaseFollowing="1">
			<signal_groups>
				<signal_group>12</signal_group>
				<signal_group>14</signal_group>
			</signal_groups>
			<green>6</green>
			<green_flash>20</green_flash>
			<trigger_button>1</trigger_button><!--1 means will be triggered by predestrain;0 means always be activated-->
		</phase>
		<phase id="2" phaseFollowing="4">
			<signal_groups>
				<signal_group>13</signal_group>		
				<signal_group>15</signal_group>		
			</signal_groups>
			<green>6</green>
			<green_flash>20</green_flash>
			<trigger_button>1</trigger_button><!--1 means will be triggered by predestrain;0 means always be activated-->
		</phase>
   </Pedestrian>
</junction>









Best Regards
David WANG
Re: How to construct a struct to get data from this XML? [message #55192 is a reply to message #55183] Fri, 16 October 2020 16:26 Go to previous message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
sinpeople wrote on Fri, 16 October 2020 05:32
Hi folks,

Greetings!

I looked into the XML reference code coming together with the installer package. It seems there is a relationship between struct members and XML elements. But I didn't find example to construct a struct to match with my XML contents. Please advise.
It seems it is a nested structure with customized value. How do I handle this into a C++ struct?

Many thanks!

<junction id="8303">
   <signal_program cycle="120" id="1" offset="0">
      <phase id="1" split="0.2">
         <signal_groups>
            <signal_group>2</signal_group>
            <signal_group>7</signal_group>
         </signal_groups>
         <min_green>7</min_green>
         <all_red>1</all_red>
         <amber>3</amber>
         <skip>0</skip>
      </phase>
      <phase id="2" split="0.2">
         <signal_groups>
            <signal_group>3</signal_group>
            <signal_group>8</signal_group>
         </signal_groups>
         <min_green>7</min_green>
         <all_red>3</all_red>
         <amber>3</amber>
         <skip>1</skip>
      </phase>
      <phase id="3" split="0.2">
         <signal_groups>
            <signal_group>10</signal_group>
            <signal_group>11</signal_group>
         </signal_groups>
         <min_green>7</min_green>
         <all_red>1</all_red>
         <amber>3</amber>
         <skip>0</skip>
      </phase>
      <phase id="4" split="0.2">
         <signal_groups>
            <signal_group>5</signal_group>
            <signal_group>10</signal_group>
         </signal_groups>
         <min_green>7</min_green>
         <all_red>3</all_red>
         <amber>3</amber>
         <skip>0</skip>
      </phase>
      <phase id="5" split="0.2">
         <signal_groups>
            <signal_group>10</signal_group>
            <signal_group>11</signal_group>
         </signal_groups>
         <min_green>7</min_green>
         <all_red>1</all_red>
         <amber>3</amber>
         <skip>0</skip>
      </phase>
   </signal_program>
    <Pedestrian>
   		<phase id="1" phaseFollowing="1">
			<signal_groups>
				<signal_group>12</signal_group>
				<signal_group>14</signal_group>
			</signal_groups>
			<green>6</green>
			<green_flash>20</green_flash>
			<trigger_button>1</trigger_button><!--1 means will be triggered by predestrain;0 means always be activated-->
		</phase>
		<phase id="2" phaseFollowing="4">
			<signal_groups>
				<signal_group>13</signal_group>		
				<signal_group>15</signal_group>		
			</signal_groups>
			<green>6</green>
			<green_flash>20</green_flash>
			<trigger_button>1</trigger_button><!--1 means will be triggered by predestrain;0 means always be activated-->
		</phase>
   </Pedestrian>
</junction>









Best Regards
David WANG


That is not quite correct (the part about struct members). Xmlize is indended as serialization feature, using it to fetch existing format would be difficult.

Anyway, I think you should check this one: https://www.ultimatepp.org/reference$XML$en-us.html

Especially part that starts with

XmlNode xn = ParseXML(xml);


Mirek
[/code]

Previous Topic: Configurations [Solved]
Next Topic: Vector a user defined struct for XML persistency
Goto Forum:
  


Current Time: Fri Mar 29 01:25:35 CET 2024

Total time taken to generate the page: 0.01308 seconds