Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I found the solution with trial and error, not sure if anyone else will be dealing with a similar situation but here is how I got it to work:</p> <pre><code>Protected Sub outputFaqData(ByVal DocArray() As CMSWS.CMSDocumentRecord) Dim mainFaqCategoryItem As String = "" Dim mainCategoryList As New List(Of String) Dim xmlDocText As New StringBuilder() xmlDocText.Append("&lt;Documents&gt;") For Each cmsDoc As CMSWS.CMSDocumentRecord In DocArray xmlDocText.Append(cmsDoc.Xml) Next xmlDocText.Append("&lt;/Documents&gt;") Dim doc As New XmlDocument() doc.LoadXml(xmlDocText.ToString()) Dim nav As XPathNavigator = doc.CreateNavigator() Dim exp As XPathExpression = nav.Compile("//Documents/Document/Fields") exp.AddSort("Field[@name='FaqCategory']", XmlSortOrder.Ascending, XmlCaseOrder.None, "", XmlDataType.Text) exp.AddSort("Field[@name='FaqSubCategory']", XmlSortOrder.Ascending, XmlCaseOrder.None, "", XmlDataType.Text) Dim leftNavHTML As New StringBuilder() Dim faqHTML As New StringBuilder() Dim currentCategoryName As String = "" Dim currentFaqSubCategory As String = "" Dim isFirstPass As Boolean = True For Each item As XPathNavigator In nav.Select(exp) Dim FaqCategory As String = item.SelectSingleNode("Field[@name='FaqCategory']").InnerXml Dim FaqSubCategory As String = item.SelectSingleNode("Field[@name='FaqSubCategory']").InnerXml Dim FaqQuestion As String = item.SelectSingleNode("Field[@name='FaqQuestion']").InnerXml Dim FaqAnswer As String = item.SelectSingleNode("Field[@name='FaqAnswer']").InnerXml Dim isNewFaqCategory As Boolean = False Dim isNewFaqSubCategory As Boolean = False If Not currentCategoryName.Equals(FaqCategory) Then isNewFaqCategory = True End If If Not currentFaqSubCategory.Equals(FaqSubCategory) Then isNewFaqSubCategory = True End If If Not isFirstPass And (isNewFaqSubCategory Or isNewFaqCategory) Then faqHTML.Append("&lt;/div&gt;") End If If isNewFaqCategory Then currentCategoryName = FaqCategory If Not isFirstPass Then faqHTML.Append("&lt;/div&gt;&lt;div id=""alp_rightcolumn""&gt;") End If leftNavHTML.Append("&lt;h4 class='FaqCategory'&gt;" &amp; FaqCategory &amp; "&lt;/h4&gt;") faqHTML.Append("&lt;h1 class='FaqCategory'&gt;" &amp; FaqCategory &amp; "&lt;/h1&gt;") End If If Not isFirstPass And (isNewFaqSubCategory Or isNewFaqCategory) Then faqHTML.Append("&lt;/div&gt;") End If If isNewFaqSubCategory Then faqHTML.Append("&lt;div class='FaqSubCategoryDiv'&gt;") End If Dim QAID As String = Guid.NewGuid().ToString If isNewFaqSubCategory Then currentFaqSubCategory = FaqSubCategory leftNavHTML.Append("&lt;div class='FaqSubCategory'&gt;&lt;a href='#" &amp; QAID &amp; "'&gt;" &amp; FaqSubCategory &amp; "&lt;/a&gt;&lt;/div&gt;") 'faqHTML.Append("&lt;br/&gt;:FIN") faqHTML.Append("&lt;h2 class='FaqSubCategory'&gt;&lt;a name='" &amp; QAID &amp; "'&gt;&lt;span class='FAQPlusMinus'&gt; + &lt;/span&gt; " &amp; FaqSubCategory &amp; "&lt;/a&gt;&lt;/h2&gt;") End If If isNewFaqSubCategory Then faqHTML.Append("&lt;div class='QuestionsBox'&gt;") End If faqHTML.Append("&lt;a class='FAQQuestion' href='#' onClick=""showAnswer('" &amp; QAID &amp; "');return false;""&gt;" &amp; FaqQuestion &amp; "&lt;img src='/images/FAQ_Arrow.gif'/&gt; &lt;/a&gt;") faqHTML.Append("&lt;div class='FAQAnswer " &amp; QAID &amp; "'&gt;" &amp; FaqAnswer &amp; "&lt;/div&gt;") isFirstPass = False Next faqHTML.Append("&lt;/div&gt;") faqHTML.Append("&lt;/div&gt;") litFAQLeftColumn.Text = leftNavHTML.ToString litFAQ.Text = faqHTML.ToString End Sub </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload