Hello,
an xpath works when I test it on freeformatter but doesn’t work the same in uipath (the output is empty).
This is the xml structure - XPATH IS //ROUTE/text()
in uipath string(//ROUTE/text()) return empty value.
Any advice?
Tx
Hello,
an xpath works when I test it on freeformatter but doesn’t work the same in uipath (the output is empty).
This is the xml structure - XPATH IS //ROUTE/text()
in uipath string(//ROUTE/text()) return empty value.
Any advice?
Tx
Hello @sanem3 ,
Could you please explain with the screenshot of the workflow and where you are getting the error.
I hope you are trying to add the xpath to the selector property. Share the screenshot and we can have a look.
Is a soap xml response
Thanks peter,
i’ve found something similar and it works:
xDoc.Descendants(nsCase+“ROUTE”).First().Value
where nsCase is the namespace contained after Q311B.
Now my question is: which are the difference between the “execute xpath” and the function used above (.descendants) to find a value within an xaml?
Descendants() is close to the behaviour of xpath //*
Descendants(“abc”) similar to XPath //abc
Thank you for your reply.
In my case, where I always have to retrieve the same value, is namespace management necessary? If yes, for what reason?
it will not find the element with //elementname when a namespace is involved as the namespace part is part of the full name.
Setting up the namespace is little effort and more worth instead of setting up retrievals for local name only.
However for training purpose have a look on the local name only approaches:
xDoc.Root.Descendants().Where(Function (e) e.Name.LocalName.Equals("ROUTE")).First().Value
XPATH could work like this:
//*[local-name()='ROUTE']
sorry but these are first approaches with xml. Is it a correct approach to create an harcoded variable like this:
nsCase = “urn:xlmsoa:abc”
and always use this expression to find the value?
xDoc.Descendants(nsCase+“ROUTE”).First().Value
or is there a possibility that the namespace or other changes over time?
Because in that case the alternative way would be to use a regex, what do you think?
Thank you
just share the xml or similar sample xml with us. thanks
we would not recommend it , as it can be processed with the for XML available options / techniques
as described within the linked post. Datatype has to be of XNamespace
when the namespace is corrrect prepared, then it will work
This is my test xml, which mirrors the original.
TestXml.xml (352 Bytes)
Of course, the nscase variable is of type xnamespace, is it correct to have the hardcoded namespace value? Or can this vary and is it better to retrieve it dynamically?
Appreciate your help.
it was necessairy to fix the xml (some tags were not properly closed)
Analysis:
so we do know which namespace we have to configure
and we can do the retrieval with the following options:
XPath:
or with the usage of a namespace manager
currently I am working on a custom library (Reply XMLToolBox Activities) to dynamize it and making it more easy. But there are some XML specifics to handle as well. So we would recommend for XML Beginers to configure the namespaces manually (currently you only need one with the descendants approach)
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.