we're probably not talking a huge difference given the tiny size of
the XML file, so barring a test, I'd go for whatever looks easier to
maintain or modify.

Bu for a larger file you wouldn't want to do it with the raw XML and
have the overhead of the string manipulation.  Of course, for a larger
file, you wouldn't want to do either of these, you'd probably want to
write a transform and use XSLT or use an XMLReader so you wouldn't
have to load the full doc in any case.

On 7/20/05, Paul N. Chu <[EMAIL PROTECTED]> wrote:
> Dean,
> 
> Ok, I tested an alternative method without using importNode.
> It's crude and probably the least efficient way to go but it
> demostrates how to get around an unwanted parent node.
> 
> Given the xmlSubMenuNode  points to the node: <subMenu>
> 
>        Dim strChildNodesXml As String = xmlSubMenuNode.InnerXml()
> 'get all the <menuItem> s without the parent
>         Dim strRootNodeXml As String = "<menu>" & strChildNodesXml &
> "</menu>"  '-- add the root node
> 
>         xmlSubMenu.LoadXml(strRootNodeXml)  '-- load the string into the 
> SubMenu
>        Menu2.DataSource = xmlSubMenu
>        Menu2.DataBind()
> 
> That said, I think  the For Each .... childnode loop with importNode
> is more efficient than having to parse and load the entire XML string
> ?
> 
> Regards, Paul
> 
> On 7/20/05, Paul N. Chu <[EMAIL PROTECTED]> wrote:
> > Dean,
> >
> > Because the first xml doc has  a <subMenu>  parent node for
> > <menuItems> underneath
> > The Xpath pointed to the parent node and thus your code works fine.
> >
> >        For Each nChild In xmlSubMenuNode.ChildNodes
> >            nChildForNew = xmlSubMenu.ImportNode(nChild, True)
> >            rootNode.AppendChild(nChildForNew)
> >        Next
> >
> > vs
> >
> >        'nChildForNew = xmlSubMenu.ImportNode(xmlSubMenuNode.FirstChild., 
> > True)
> >        'rootNode.AppendChild(nChildForNew)
> >
> > But, for learning's sake, I would like to see an alternative method
> > which would allow me to use ImportNode instead of doing the For each
> > ....  if possible.
> >
> > The importNode method only takes a  xmlnode as a parameter and not a
> > xmlnodelist. This prevents me from passing a nodelist of <menuItems>
> > which could be changed in the code above by using SelectNodes instead
> > of SelectSingleNode.
> >
> > ----
> >
> > Glad to see you're expanding the Fiala clan and that the son will have
> > a younger sister to "fight" with. I wonder if "he/she" will have "hoop
> > dreams" like dear ole Dad ?
> > Not planning any visit but you never know...
> >
> > Dean, keep up the good work and thanks, Paul
> >
> >
> >
> >
> > On 7/20/05, Dean Fiala <[EMAIL PROTECTED]> wrote:
> > > Import node pulls in whatever node you tell it to. We were grabbing
> > > too high up.  Just do this instead and grab the first child of the sub
> > > menu nodes which what you want....
> > >
> > > nChildForNew = xmlSubMenu.ImportNode(nChild.FirstChild, true)
> > >
> > > and you should be all set.
> > >
> > > The little boy is doing very well and is getting taller by the day and
> > > talking up a storm. Also has a little sister now, 8 months old, who is
> > > just starting to bug him because she can crawl and grab his toys.
> > > When you coming out to lose in basketball again?
> > >
> > > On 7/19/05, Paul N. Chu <[EMAIL PROTECTED]> wrote:
> > > > Hi Dean,
> > > >
> > > > How's your son doing ? He was just a wee wee guy "walking" around the
> > > > neighborhood last time I was in town.
> > > >
> > > > Thanks for the code to do the looping.
> > > > It works fine !!!
> > > >
> > > > I was curious how use the importNode method which seems to be designed
> > > > for this.
> > > > When I used the importNode the resulting submenu xml had the
> > > > unwanted element:  <subMenu> as the top element but I only wanted
> > > > <menuitem> nodes which I could easily append to the root node <menu>.
> > > >
> > > > I changed the original code so I don't have the importNode version 
> > > > handy.
> > > >
> > > > I will try and followup on the other groups later.
> > > >
> > > > Thanks, Paul
> > > >
> > > >
> > > > On 7/19/05, Charles Carroll <[EMAIL PROTECTED]> wrote:
> > > > > CrossPost this to:
> > > > > http://groups.yahoo.com/group/XmlToughQuestionsAspClassicAspNet/
> > > > > and
> > > > > http://groups.yahoo.com/group/DotNetXML/
> > > > > tons of XML experts there may have suggestions to improve that code.
> > > > >
> > > > > On 7/18/05, Paul N. Chu <[EMAIL PROTECTED]> wrote:
> > > > > >  Here's is the basic code I have so far:
> > > > > >
> > > > > >  '-- Build Top Full Horizontal Menu at Menu1 server control
> > > > > >  Dim menuXML As New System.Xml.XmlDocument
> > > > > >  Dim xmlNode As System.Xml.XmlNode
> > > > > >  menuXML.Load(Server.MapPath("CoStar.xml"))  ' the Menu file
> > > > > >  Menu1.DataSource = menuXML
> > > > > >  Menu1.DataBind()  ' Top Horiz Menu built
> > > > > >
> > > > > >  '-- Build SubMenu Menu at Menu2 server control
> > > > > >  Dim xmlSubMenu As XmlDocument = New XmlDocument
> > > > > >  Dim xmlDeclaration As XmlDeclaration =
> > > > > >  xmlDoc.CreateXmlDeclaration("1.0", "utf-8", Nothing)
> > > > > >  Dim rootNode As XmlElement = xmlDoc.CreateElement("Menu")
> > > > > >  xmlDoc.InsertBefore(xmlDeclaration, xmlDoc.DocumentElement)
> > > > > >  xmlDoc.AppendChild(rootNode)
> > > > > >
> > > > > >  Dim strMenuItemText As String = "Settlement" '-- Hardcoded here
> > > > > >  Dim myXPath As String =
> > > > > >  String.Format("/menu/menuItem[text='{0}']/subMenu",
> > > > > > strMenuItemText)
> > > > > >
> > > > > >  'this should point to subMenu node for Settlement menuitem if the
> > > > > >  Xpath is right
> > > > > >  xmlNode = menuXML.SelectSingleNode(myXPath)
> > > > > >
> > > > > >  ' ??? How to collect all the childNodes and copy to new document
> > > > > >  '  xmlNode.childNodes loop ? with appendChild etc ?
> > > > > >
> > > > > >  Menu2.DataSource = xmlSubMenu
> > > > > >  Menu2.DataBind()
> > > > > >
> > > > > >
> > > > > >
> > > > > >  On 7/18/05, Paul N. Chu <[EMAIL PROTECTED]> wrote:
> > > > > >  > Given the following xml , I would like to XPATH for the 
> > > > > > Placement or
> > > > > >  > Settlement  menuitem and then construct another XML file shown 
> > > > > > below
> > > > > >  > from the childnodes of the subMenu node.
> > > > > >  >
> > > > > >  > <menu>
> > > > > >  > <menuItem>
> > > > > >  >  <text>Placement</text>
> > > > > >  >  <cssclass>highlighteditem</cssclass>
> > > > > >  >  <subMenu>
> > > > > >  >        <menuItem>
> > > > > >  >        <text>Sub Item 3</text>
> > > > > >  >        <url>page3.html</url>
> > > > > >  >        </menuItem>
> > > > > >  >        <menuItem>
> > > > > >  >        <text>Sub Item 4</text>
> > > > > >  >        <url>page4.html</url>
> > > > > >  >        </menuItem>
> > > > > >  >  </subMenu>
> > > > > >  > </menuItem>
> > > > > >  >
> > > > > >  > <menuItem>
> > > > > >  > <text>Settlement</text>
> > > > > >  > <cssclass>highlighteditem</cssclass>
> > > > > >  >        <subMenu>
> > > > > >  >                <menuItem>
> > > > > >  >                <text>Sub Item 3</text>
> > > > > >  >                <url>page3.html</url>
> > > > > >  >                </menuItem>
> > > > > >  >                <menuItem>
> > > > > >  >                <text>Sub Item 4</text>
> > > > > >  >                <url>page4.html</url>
> > > > > >  >                </menuItem>
> > > > > >  >        </subMenu>
> > > > > >  > </menuItem>
> > > > > >  > </menu>
> > > > > >  >
> > > > > >  >
> > > > > >  > This is the desired submenu xml that I would like to create:
> > > > > >  >
> > > > > >  > <menu>
> > > > > >  >        <menuItem>
> > > > > >  >        <text>Sub Item 3</text>
> > > > > >  >        <url>page3.html</url>
> > > > > >  >        </menuItem>
> > > > > >  >        <menuItem>
> > > > > >  >        <text>Sub Item 4</text>
> > > > > >  >        <url>page4.html</url>
> > > > > >  >        </menuItem>
> > > > > >  > </menu>
> > > > > >  >
> > > > > >  > Thanks, Paul
> > > > > >  >
> > > > > >  > On 7/18/05, getsmartpaul86 <[EMAIL PROTECTED]> wrote:
> > > > > >  > > Hi Xmlers,
> > > > > >  > >
> > > > > >  > > I'm looking for an example that would
> > > > > >  > > use xpath to search a document for a Node and then
> > > > > >  > > clone / copy that node and it's children to another 
> > > > > > xmldocument.
> > > > > >  > >
> > > > > >  > > I'm working with skmMenu by Scott Mitchell and have a 
> > > > > > Horizontal Top
> > > > > >  > > Menu and would like to search the menu xml nodes to find
> > > > > >  > > the current Top Level Menu and copy it's children
> > > > > >  > > and then show those nodes also in a left hand - navigation 
> > > > > > menu.
> > > > > >  > >
> > > > > >  > > Thus if the  top menu has   CatA , CatB, CatC
> > > > > >  > > then the xpath to CatB
> > > > > >  > > would find all the childnodes of CatB and then copy them
> > > > > >  > > to a new XML document.
> > > > > >  > >
> > > > > >  > > Thanks for your help, Paul
> > > > > >  > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  > > Yahoo! Groups Links
> > > > > >  > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  > >
> > > > > >  >
> > > > > >
> > > > > >
> > > > > >
> > > > > >  ________________________________
> > > > > >  YAHOO! GROUPS LINKS
> > > > > >
> > > > > >
> > > > > >  Visit your group "AspNetAnyQuestionIsOk" on the web.
> > > > > >
> > > > > >  To unsubscribe from this group, send an email to:
> > > > > >  [EMAIL PROTECTED]
> > > > > >
> > > > > >  Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
> > > > > > Service.
> > > > > >
> > > > > >  ________________________________
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > Yahoo! Groups Links
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > Yahoo! Groups Links
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > Dean Fiala
> > > Very Practical Software, Inc
> > > http://www.vpsw.com
> > >
> > >
> > > --
> > > Dean Fiala
> > > Very Practical Software, Inc
> > > http://www.vpsw.com
> > >
> > >
> > >
> > > Yahoo! Groups Links
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> 
> 
> 
> Yahoo! Groups Links
> 
> 
> 
> 
> 
> 
> 


-- 
Dean Fiala
Very Practical Software, Inc
http://www.vpsw.com


 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/AspNetAnyQuestionIsOk/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to