XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Bob ChauvinSubject: Need help with SelectsingleNode XPath to find a node that ends with a particular string.
Author: Bob Chauvin
Date: 30 Sep 2010 10:35 AM
The following full path finds the node of interest, but everything up to the 'editWith' name is subject to change.

/*[local-name()='xDocumentClass' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition']/*[local-name()='views' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='view' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='editing' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='xmlToEdit' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='editWith' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='fragmentToInsert' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='chooseFragment' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/User[1]/Secretary[1]/AttySecPairing[1]

Is there a way to find the node based on it ending with the following?
/*[local-name()='editWith' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='fragmentToInsert' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='chooseFragment' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/User[1]/Secretary[1]/AttySecPairing[1]

SS2010

Postnext
Bob ChauvinSubject: Need help with SelectsingleNode XPath to find a node that ends with a particular string.
Author: Bob Chauvin
Date: 30 Sep 2010 10:55 AM
I found that removing the absolute node references (ie [1]) for the first few segments of the path allows the path to be resolved as desired.

Here is the new path...

/*[local-name()='xDocumentClass' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition']/*[local-name()='views' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition']/*[local-name()='view' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition']/*[local-name()='editing' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition']/*[local-name()='xmlToEdit' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='editWith' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='fragmentToInsert' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/*[local-name()='chooseFragment' and namespace-uri()='http://schemas.microsoft.com/office/infopath/2003/solutionDefinition'][1]/User[1]/Secretary[1]/AttySecPairing[1]

Postnext
Ivan PedruzziSubject: Need help with SelectsingleNode XPath to find a node that ends with a particular string.
Author: Ivan Pedruzzi
Date: 01 Oct 2010 01:48 AM

In XPath 1.0 instead of local-name()='editWith'

use

substring(local-name(), string-length(local-name()) - 8) = 'editWith'

In XPath 2.0

ends-with(local-name(), 'editWith')

Ivan

Postnext
Bob ChauvinSubject: Need help with SelectsingleNode XPath to find a node that ends with a particular string.
Author: Bob Chauvin
Date: 01 Oct 2010 08:08 AM
Originally Posted: 01 Oct 2010 08:06 AM
Ivan, If there are multiple paths with the editWith name wouldn't I need to provide more of the path (for example the last three nodes) to get the specific item I want?

SS2010

Posttop
Ivan PedruzziSubject: Need help with SelectsingleNode XPath to find a node that ends with a particular string.
Author: Ivan Pedruzzi
Date: 02 Oct 2010 02:20 AM

Bob,

Could you post a sample of the XML and show what you would like to select?


Ivan

 
Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.