.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal
Post New Web Links

determining if node contains a value using XPath

Posted By:      Posted Date: September 07, 2010    Points: 0   Category :ASP.Net
I have this document:<doc>    <float name="score">1.0</float>    <arr name="services">        <str>Fotoreport</str>        <str>Exclusive</str>    </arr></doc>I want to check if the node <arr name="services"> contains the value "Fotoreport"I now have this:XPath("arr[@name=""services""]/str[@Fotoreport]")But, that doesnt work....what is the correct XPath?

View Complete Post

More Related Resource Links

Ok, XPath expert... how to access this node??

I need to alter the "something else" attribute in the xml below. The only way the correct 'category' node can be found is by finding the right 'subCat', in this case the subcat with a subCatTypeCode equal to 'B'.<root> <category> <subCat subCatTypeCode='A' /> <features> <item id='5678' attribute='something'/> </features> </category> <category> <subCat subCatTypeCode='B' /> <features> <item id='5678' attribute='something else'/> </features> </category> </root>  If you try to do something like the below, you will end up with the FIRST 'item' node.  XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(sXML); XmlNode node = xmlDoc.SelectSingleNode("//category/subCat[@subCatTypeCode='B']").ParentNode.SelectSingleNode("//features/item[@id='5678']"); Please... how to do this?  Thanks.

Help needed on XPath Error: System.Xml.XPath.XPathException: Expression must evaluate to a node-set.

Im trying to determine if a value already exists in an XML file. In this case I want to know if there's a node "id" with value 3. But I cant figure out how...XML:<root><data><compare><locations><id>3</id><id>5</id></locations></compare></data></root>XSL:xmldoc.SelectSingleNode("//root/data/compare/locations/id=""3""")Error:XPath Error: System.Xml.XPath.XPathException: Expression must evaluate to a node-set.

Adding a full node to an existing XML document on a by xpath specified location

I want to add a complete node to an existing XML document.So:1. get the XML document from the session2. create a new node3. pass the node and the session to a function, that adds the node on the location of the xpath4. return the new session, updated with the node in the specified locationBelow my code, which DOESNT work.I've had some other advices, but nothing seems to work. What am i doing wrong?!?!Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load    Dim doc As XmlDocument = New XmlDocument()    Dim xmldoc As XmlDocument = Session("XML") 'get XMLdocument from session    Dim locationNode As XmlNode = doc.CreateElement("location")    Dim locationAttribute As XmlAttribute = doc.CreateAttribute("id")    locationAttribute.Value = "3"    locationNode.Attributes.Append(locationAttribute)    Dim titleNode As XmlNode = doc.CreateElement("title")    titleNode.AppendChild(doc.CreateTextNode("Empire State Building"))    locationNode.AppendChild(titleNode)    doc.AppendChild(locationNode)    Dim newNode As XmlNode = doc.ImportNode(locationNode, True)    AddOrUpdateNodeInSession(Session, "//root/dat

Xpath query to find an Node who's attribute contains a forward slash - Going crazy


If  I have a .XML file that contains the following example:

<Socks Style ="Business/Business Casual/Casual"


When I try to use the Xpath expression below to find the element above by searching for the value contained in the Style Attribute, the expression returns null:

//Socks [@Style='Business/Business Casual/Casual'] 

I downloaded xPath virtualizer and I noticed that the expression above is adding the namespace alias when it finds the embedded forward slash contained in the value of the Style Attribute (which is of course not what I want to happen).  This is driving me up a tree!!  Isn't there a way to escape the forward slash?  I know it is the slash that is the problem because for testing purposes I substituted dashes (-) in one of the nodes' Style Attribute values and then changed the xpath expression to match and it returned the exact node.

My goal is to do some replacements on all elements with the Style attribute based on each contents but I can't even try that because of this roadblock.

Please help anyone



Update the name of an XML node using XPath?

Hello, I have a table in an SQL Server database which contains a column of datatype XML. I wonder if it is possible to update the name of a node in that table using an XPath expressions?
The XML file stored in this column looks something like this:
and I want to update the nodename "Misspelled" and set it to "Correct". Is this possible to do this with an XPath expression or what it is the best way to do this?
After the update I want the XML to look like this:
As you can see it is the name of the node that I want to replace and not the node value.
Any help is greatly appreciated.

xpath issue


Hi i am using xpath to loop through each node,

the xml is below i can get the value of "link" but i cant get the thumbnail value, have you got any ideas how i can do this, my code is below.



     <link>test 1</link>
     <media:thumbnail url="http://test.com/image.jpg" height="75" width="75" />



     <link>test 2</link>
     <media:thumbnail url="http://test.com/image.jpg" height="75" width="75" />


public void FindLinks(XPathNavigator p_xPathNav, DataTable dt)
            //run the XPath query
            XPathNodeIterator xPathIt = p_xPathNav.Select("//item");

            //use the

Display homepage node along with child nodes


If the first Sitemap node is your homepage/default and all other nodes are supposed to be children / grandchildren of the first sitemap node in a web.sitemap, how do I set up my web.sitemap to enable me to display my cssFriendlyMenu with the homepage node along with the nodes that are 1 level down from it at the same time as in :

Home   Products   Services   About us


...or is it not possible to have the first sitemap node displayed along with the nodes that are 1 level down from it?  Do I need to have a different starting node rather than my homepage node?

Test Run: Determining .NET Assembly and Method References


Before you can test any software system effectively, you must understand the system under test. If the system includes the Microsoft® . NET Framework, understanding the system under test includes understanding its assembly and method dependencies.

James McCaffrey

MSDN Magazine March 2006

The ASP Column: Determining Browser Capabilities in ASP.NET


Web applications are different from applications that run in homogenous environments because they send their output to all kinds of platforms and Web browsers. Some browsers support client-side scripting, some support XHTML, and still others have limited screen real estate.

George Shepherd

MSDN Magazine January 2005

Real-World XML: Manipulate XML Data Easily with the XPath and XSLT APIs in the .NET Framework


XPath is emerging as a universal query language. With XPath, you can identify and process a group of related nodes in XML-based data sources. XPath provides an infrastructure that is integral to XML support in the .NET Framework. The XPath navigation model is even used under the hood of the XSLT processor. In this article, the author reviews the implementation details of the XPath navigator and the XSLT processor and includes practical examples such as asynchronous transformations, sorted node-sets, and ASP.NET server-side transformations.

Dino Esposito

MSDN Magazine July 2003

The XML Files: Introducing XPath 2.0


Over two years ago in one of the first installments of this column, I wrote about XPath version 1. 0 (see The XML Files: Addressing Infosets with XPath for a quick review). As stated in the original specification: "XPath is a language for addressing parts of an XML document.

Aaron Skonnard

MSDN Magazine January 2003

ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend