<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Eric Jarvi : development</title><link>http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx</link><description>Tags: development</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Iterative XML Tree Traversal</title><link>http://blogs.msdn.com/ejarvi/archive/2009/06/03/iterative-tree-traversal-with-xpathnavigator.aspx</link><pubDate>Wed, 03 Jun 2009 21:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9692188</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/9692188.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=9692188</wfw:commentRss><description>&lt;P&gt;Here's a C# code snippet for iterative tree traversal of elements in an XML document using XPathNavigator that takes advantage of parent pointers.&amp;nbsp; &lt;/P&gt;[ &lt;A href="http://zk8xjw.blu.livefilestore.com/y1pl5m8L4YR-atQoMWigBDc4TUwZCF1y1qVhgOk0Ttv-pMMLJvIxDpIRE9Ek2YATuEUanbCtuyTJF62rU_dehATpxMXBvh8YSKK/XPathNavigatorIterativeTreeTraversal.zip?download" mce_href="http://zk8xjw.blu.livefilestore.com/y1pl5m8L4YR-atQoMWigBDc4TUwZCF1y1qVhgOk0Ttv-pMMLJvIxDpIRE9Ek2YATuEUanbCtuyTJF62rU_dehATpxMXBvh8YSKK/XPathNavigatorIterativeTreeTraversal.zip?download"&gt;download source&lt;/A&gt; ] 
&lt;P&gt;&lt;B&gt;test.xml&lt;/B&gt;&lt;/P&gt;
&lt;DIV style="FONT-FAMILY: Courier New; BACKGROUND: white; COLOR: black; FONT-SIZE: 10pt"&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;?&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;xml&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;version&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;1.0&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;encoding&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;UTF-8&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;standalone&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;no&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; ?&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;test&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;a&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;b&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;c&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;c1&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;c2&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;c2i&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;c2ii&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;c2&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;nbsp;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;c&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #a31515"&gt;test&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;B&gt;test.cs&lt;/B&gt;&lt;/P&gt;
&lt;DIV style="FONT-FAMILY: Courier New; BACKGROUND: white; COLOR: black; FONT-SIZE: 10pt"&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt; System.Xml.XPath;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;IterativeTraversal&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/SPAN&gt;&amp;nbsp;{&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; Main()&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; XPathDocument doc = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; XPathDocument(&lt;SPAN style="COLOR: #a31515"&gt;"test.xml"&lt;/SPAN&gt;);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; XPathNavigator nav = doc.CreateNavigator();&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nav.MoveToFollowing(XPathNodeType.Element); &lt;SPAN style="COLOR: green"&gt;/* skip xml decl */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; XPathNavigator startPosition = nav.Clone();&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;bool&lt;/SPAN&gt; leaf = &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;bool&lt;/SPAN&gt; searching = &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;do&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; leaf = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;21&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (nav.HasChildren)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;23&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nav.MoveToFirstChild();&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;24&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (nav.NodeType == XPathNodeType.Element)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;25&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;26&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; leaf = &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;27&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nav.MoveToParent();&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;28&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;29&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;/* begin processing interior node */&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;30&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;Console&lt;/SPAN&gt;.WriteLine(nav.Name);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;31&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;/* end processing interior node */&lt;/SPAN&gt; &lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;32&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;33&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nav.MoveToFirstChild();&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;34&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;else&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;36&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;37&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;/* parent was a leaf element, this child was not*/&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;38&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nav.MoveToParent();&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;39&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;40&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;41&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;42&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (leaf)&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;43&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;44&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;/* begin processing leaf node */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;45&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;Console&lt;/SPAN&gt;.WriteLine(nav.Name);&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;46&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;/* end processing leaf node */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;47&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;48&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (!nav.MoveToNext(XPathNodeType.Element))&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;49&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;50&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;do&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;51&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;52&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; searching = &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;53&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nav.MoveToParent();&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;54&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; ((!nav.IsSamePosition(startPosition)) &amp;amp;&amp;amp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;55&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (!nav.NodeType.Equals(XPathNodeType.Root)))&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;56&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;57&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (!nav.MoveToNext(XPathNodeType.Element))&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;58&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;59&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;/* no next sibling, search for parent's next sibling */&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;60&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; searching = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;61&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;62&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;63&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;SPAN style="COLOR: blue"&gt;while&lt;/SPAN&gt; (searching &amp;amp;&amp;amp; !nav.IsSamePosition(startPosition) &amp;amp;&amp;amp; !nav.NodeType.Equals(XPathNodeType.Root));&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;64&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;65&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;66&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;SPAN style="COLOR: blue"&gt;while&lt;/SPAN&gt; (!nav.IsSamePosition(startPosition) &amp;amp;&amp;amp; !nav.NodeType.Equals(XPathNodeType.Root));&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;67&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;68&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style="MARGIN: 0px"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;69&lt;/SPAN&gt;&amp;nbsp;}&lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9692188" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/testing/default.aspx">testing</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/xml/default.aspx">xml</category></item><item><title>VSTS Web Access Power Tool</title><link>http://blogs.msdn.com/ejarvi/archive/2007/11/30/vsts-2008-web-access.aspx</link><pubDate>Sat, 01 Dec 2007 04:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6621903</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/6621903.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=6621903</wfw:commentRss><description>&lt;P&gt;Now with linkable web pages! &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/bharry/archive/2007/11/30/vsts-web-access-power-tool-for-team-system-2008-released.aspx" mce_href="http://blogs.msdn.com/bharry/archive/2007/11/30/vsts-web-access-power-tool-for-team-system-2008-released.aspx"&gt;http://blogs.msdn.com/bharry/archive/2007/11/30/vsts-web-access-power-tool-for-team-system-2008-released.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6621903" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/testing/default.aspx">testing</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/VSTS+Tips/default.aspx">VSTS Tips</category></item><item><title>Security &amp; Perf Videos</title><link>http://blogs.msdn.com/ejarvi/archive/2007/11/26/security-perf-videos.aspx</link><pubDate>Mon, 26 Nov 2007 23:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6534445</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/6534445.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=6534445</wfw:commentRss><description>&lt;P&gt;J.D. Meier has posted a decent index of videos covering performance testing, ASP.NET 2.0, and VSTS: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/jmeier/archive/2007/11/22/videos-security-performance-testing-and-visual-studio-team-system.aspx" mce_href="http://blogs.msdn.com/jmeier/archive/2007/11/22/videos-security-performance-testing-and-visual-studio-team-system.aspx"&gt;http://blogs.msdn.com/jmeier/archive/2007/11/22/videos-security-performance-testing-and-visual-studio-team-system.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6534445" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/testing/default.aspx">testing</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/security/default.aspx">security</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/performance/default.aspx">performance</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/VSTS+Tips/default.aspx">VSTS Tips</category></item><item><title>Team System Web Access Power Tool</title><link>http://blogs.msdn.com/ejarvi/archive/2007/07/30/team-system-web-access-power-tool.aspx</link><pubDate>Tue, 31 Jul 2007 02:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4137816</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/4137816.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=4137816</wfw:commentRss><description>&lt;P&gt;Details on Brian Harry's blog:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/bharry/archive/2007/07/30/team-system-web-access-power-tool-available.aspx"&gt;http://blogs.msdn.com/bharry/archive/2007/07/30/team-system-web-access-power-tool-available.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4137816" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/testing/default.aspx">testing</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/VSTS+Tips/default.aspx">VSTS Tips</category></item><item><title>Dynamic [Language Runtime | Type System]</title><link>http://blogs.msdn.com/ejarvi/archive/2007/04/30/dynamic-language-runtime-type-system.aspx</link><pubDate>Tue, 01 May 2007 00:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2344754</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/2344754.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=2344754</wfw:commentRss><description>&lt;P&gt;Port 25 is running video on what they're calling "dynamic language runtime" with some innovative type system implementations at the core.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"big trick is deferred compilation ... looks a lot like linq expression trees ... backend can decide on different optimizations ... we can take the code and specialize it for the different types ... "&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;[1/2] &lt;A href="http://port25.technet.com/archive/2007/04/30/python-java-ruby-oh-my-cross-platform-net-framework.aspx" mce_href="http://port25.technet.com/archive/2007/04/30/python-java-ruby-oh-my-cross-platform-net-framework.aspx"&gt;http://port25.technet.com/archive/2007/04/30/python-java-ruby-oh-my-cross-platform-net-framework.aspx&lt;/A&gt;&lt;BR&gt;[2/2] &lt;A href="http://port25.technet.com/archive/2007/04/30/ironruby.aspx"&gt;http://port25.technet.com/archive/2007/04/30/ironruby.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;other links:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.codeplex.com/IronPython/" mce_href="http://www.codeplex.com/IronPython/"&gt;http://www.codeplex.com/IronPython/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.zdnet.com/microsoft/?p=404" mce_href="http://blogs.zdnet.com/microsoft/?p=404"&gt;http://blogs.zdnet.com/microsoft/?p=404&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2344754" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category></item><item><title>Patterns &amp; Practices Security Videos</title><link>http://blogs.msdn.com/ejarvi/archive/2007/03/26/patterns-practices-security-videos.aspx</link><pubDate>Mon, 26 Mar 2007 17:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1952653</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/1952653.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=1952653</wfw:commentRss><description>&lt;P&gt;"Click Here"&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/jmeier/archive/2007/03/24/patterns-practices-security-videos.aspx"&gt;http://blogs.msdn.com/jmeier/archive/2007/03/24/patterns-practices-security-videos.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1952653" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/testing/default.aspx">testing</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/security/default.aspx">security</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category></item><item><title>Debugging ASP.NET AJAX</title><link>http://blogs.msdn.com/ejarvi/archive/2007/03/01/debugging-asp-net-ajax.aspx</link><pubDate>Thu, 01 Mar 2007 21:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1780731</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/1780731.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=1780731</wfw:commentRss><description>&lt;P&gt;Wouldn't it be nice to be able to debug AJAX from the comfort of the IDE? Gonzo stuff like setting a breakpoint &lt;EM&gt;inside &lt;/EM&gt;of some script that'll get hit client-side? &lt;/P&gt;
&lt;P&gt;We're getting there, and could use feedback.&amp;nbsp; Noah has a&amp;nbsp;great post on this with screenshots - check it&amp;nbsp;out: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/noahc/archive/2007/03/01/script-debugging-improvements-in-orcas.aspx" mce_href="http://blogs.msdn.com/noahc/archive/2007/03/01/script-debugging-improvements-in-orcas.aspx"&gt;http://blogs.msdn.com/noahc/archive/2007/03/01/script-debugging-improvements-in-orcas.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1780731" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/testing/default.aspx">testing</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category></item><item><title>SourceSafe on Vista</title><link>http://blogs.msdn.com/ejarvi/archive/2007/01/26/sourcesafe-on-vista.aspx</link><pubDate>Fri, 26 Jan 2007 23:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1538017</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/1538017.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=1538017</wfw:commentRss><description>&lt;P&gt;If you're a SourceSafe on Vista type of person, here's some current information from Richard Berg to be aware of&amp;nbsp;--&lt;/P&gt;
&lt;P&gt;Part 1:&lt;BR&gt;&lt;A href="http://blogs.msdn.com/richardb/archive/2007/01/23/clarifying-sourcesafe-support-on-vista.aspx"&gt;http://blogs.msdn.com/richardb/archive/2007/01/23/clarifying-sourcesafe-support-on-vista.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Part 2:&lt;BR&gt;&lt;A href="http://blogs.msdn.com/richardb/archive/2007/01/26/sourcesafe-on-vista-part-2.aspx"&gt;http://blogs.msdn.com/richardb/archive/2007/01/26/sourcesafe-on-vista-part-2.aspx&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ansi-language: EN-US; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1538017" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/noise/default.aspx">noise</category></item><item><title>powershell</title><link>http://blogs.msdn.com/ejarvi/archive/2006/11/14/powershell.aspx</link><pubDate>Tue, 14 Nov 2006 22:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1077068</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/1077068.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=1077068</wfw:commentRss><description>&lt;P&gt;Port 25 has some video up to coincide with the powershell (monad) release: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://port25.technet.com/archive/2006/11/14/powershell-released-an-interview-with-architect-jeffrey-snover.aspx"&gt;http://port25.technet.com/archive/2006/11/14/powershell-released-an-interview-with-architect-jeffrey-snover.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1077068" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/testing/default.aspx">testing</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/noise/default.aspx">noise</category></item><item><title>VSTA released</title><link>http://blogs.msdn.com/ejarvi/archive/2006/11/09/vsta-released.aspx</link><pubDate>Fri, 10 Nov 2006 03:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1048154</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/1048154.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=1048154</wfw:commentRss><description>&lt;P&gt;If you're into app customization --- &lt;/P&gt;
&lt;P&gt;"Visual Studio Tools for Applications (VSTA) was released as an integrated component of the 2007 Office system earlier this week and is now available to both Office developers and ISVs!" &lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/vstudio/extend/vsta/"&gt;http://msdn.microsoft.com/vstudio/extend/vsta/&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1048154" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/noise/default.aspx">noise</category></item><item><title>Michael Howard on the Silver Bullet Security Podcast</title><link>http://blogs.msdn.com/ejarvi/archive/2006/09/29/777607.aspx</link><pubDate>Sat, 30 Sep 2006 03:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:777607</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/777607.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=777607</wfw:commentRss><description>&lt;P&gt;Here's the link...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.cigital.com/silverbullet/show-006/"&gt;http://www.cigital.com/silverbullet/show-006/&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=777607" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/testing/default.aspx">testing</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/security/default.aspx">security</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category></item><item><title>CERT Secure Coding Standards </title><link>http://blogs.msdn.com/ejarvi/archive/2006/09/27/773965.aspx</link><pubDate>Wed, 27 Sep 2006 19:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:773965</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/773965.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=773965</wfw:commentRss><description>&lt;P&gt;"This web site exists to support the development of secure coding standards for commonly used programming languages such as C and C++. " &lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.securecoding.cert.org/confluence/display/seccode/CERT+Secure+Coding+Standards"&gt;https://www.securecoding.cert.org/confluence/display/seccode/CERT+Secure+Coding+Standards&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=773965" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/security/default.aspx">security</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category></item><item><title>concurrency for scalability</title><link>http://blogs.msdn.com/ejarvi/archive/2006/08/02/686740.aspx</link><pubDate>Wed, 02 Aug 2006 21:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:686740</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/686740.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=686740</wfw:commentRss><description>&lt;P&gt;Joe Duffy&amp;nbsp;article in September's MSDN Magazine:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.bluebytesoftware.com/blog/PermaLink,guid,8b234428-1542-4a87-958f-2885c7cd6860.aspx"&gt;http://www.bluebytesoftware.com/blog/PermaLink,guid,8b234428-1542-4a87-958f-2885c7cd6860.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=686740" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/performance/default.aspx">performance</category></item><item><title>Tim O'Reilly interview</title><link>http://blogs.msdn.com/ejarvi/archive/2006/07/28/682014.aspx</link><pubDate>Sat, 29 Jul 2006 01:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:682014</guid><dc:creator>ejarvi</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/682014.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=682014</wfw:commentRss><description>&lt;P&gt;Interesting conversation with Tim O'Reilly&amp;nbsp;on Port 25&amp;nbsp;&amp;nbsp;: &lt;/P&gt;
&lt;P&gt;"as we build these new applications ... it's less and less about source and more and more about shared activity ... we're moving into the era of network effects in data ... and increasing returns that come from collaboration ... and systems that get better as more people use them ... look if you gave Richard Stallman every bit of Google source code he couldn't make Google ... this is a transitional stage ... there are principles in the open source definition that are good principles but we have to transform them and ask ourselves what does that mean (GPL to enforce reciprocity of web services?) ..." &lt;/P&gt;
&lt;P&gt;&lt;A href="http://port25.technet.com/archive/2006/07/27/OSCON-Interview-_2300_1_3A00_--Tim-O_2700_Reilly.aspx"&gt;http://port25.technet.com/archive/2006/07/27/OSCON-Interview-_2300_1_3A00_--Tim-O_2700_Reilly.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=682014" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/noise/default.aspx">noise</category></item><item><title>VSTS Tip: teamprise interview</title><link>http://blogs.msdn.com/ejarvi/archive/2006/07/21/674100.aspx</link><pubDate>Fri, 21 Jul 2006 21:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:674100</guid><dc:creator>ejarvi</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/ejarvi/comments/674100.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ejarvi/commentrss.aspx?PostID=674100</wfw:commentRss><description>&lt;P&gt;"Sam interviews Martin from Teamprise, a company which has developed a pretty interesting suite of client applications that can access Visual Studio Team Foundation Server from Macintosh, UNIX or Linux clients using Eclipse. The Teamprise implementation allows development teams to use the source control features as well as work item tracking from within the Eclipse IDE"&lt;/P&gt;
&lt;P&gt;&lt;A href="http://port25.technet.com/archive/2006/07/21/Podcast_3A00_-Accessing-VS-Team-Foundation-Server-from-Mac_2C00_-UNIX-or-Linux-through-Eclipse.aspx"&gt;http://port25.technet.com/archive/2006/07/21/Podcast_3A00_-Accessing-VS-Team-Foundation-Server-from-Mac_2C00_-UNIX-or-Linux-through-Eclipse.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=674100" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ejarvi/archive/tags/testing/default.aspx">testing</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/ejarvi/archive/tags/VSTS+Tips/default.aspx">VSTS Tips</category></item></channel></rss>