I would like to know if it's possible to read a child by passing from the parent.
<configuration>
<Server>
<RootDirectory>Temp</RootDirectory>
<IP>192.168.10.10</IP>
<Port>350</Port>
<UserName>USERNAME</UserName>
<UserPassword>PASSWORD</UserPassword>
</Server>
</configuration>
I will read the node "Server" with:
<MSBuild.ExtensionPack.Xml.XmlFile TaskAction="ReadElements" File="server.config" XPath="//configuration/Server">
<Output TaskParameter="Elements" ItemName="Server" />
</MSBuild.ExtensionPack.Xml.XmlFile>
And I would like to display all child nodes with something like this:
<Message Text="%(Server.RootDirectory) - %(Server.IP)"/>
Any ideas?
Finally, with the help of Mike Fourie (Solution), there is a solution.
You need to download the latest source code, compile the .sln and copy binaries to your folder c:\Program Files\Msbuild\ExtensionPack to use the property "ReadChildrenToMetadata" like that:
<configuration>
<Server>
<RootDirectory>Temp</RootDirectory>
<IP>192.168.10.10</IP>
<Port>350</Port>
<UserName>USERNAME</UserName>
<UserPassword>PASSWORD</UserPassword>
</Server>
</configuration>
ReadElements:
<MSBuild.ExtensionPack.Xml.XmlFile TaskAction="ReadElements" ReadChildrenToMetadata="true" File="Config\ftp.config" XPath="//configuration/Server">
<Output TaskParameter="Elements" ItemName="Server" />
</MSBuild.ExtensionPack.Xml.XmlFile>
<Message Text="%(Server.RootDirectory) - %(Server.IP)"/>
And you will get:
Temp - 192.168.10.10