tesmc
asked on
C#: how to use xpath to escape a token
how do i use the below:
XmlNode node = doc.SelectSingleNode("/edt /ce[normal ize-space( desc)='" + msg + "']/code");
in the event that the msg parameter contains an apostrophe or other special characters (since it is a string). (i.e. - Can't create Server object). This string exists in the xml . the <desc> tag does contain special characters as well (since it's a string).
how do i escape special grammar characters like commas ,colon, parenthesis, dash, slash , underscore)
XmlNode node = doc.SelectSingleNode("/edt
in the event that the msg parameter contains an apostrophe or other special characters (since it is a string). (i.e. - Can't create Server object). This string exists in the xml . the <desc> tag does contain special characters as well (since it's a string).
how do i escape special grammar characters like commas ,colon, parenthesis, dash, slash , underscore)
ASKER
if i use a replace it won't find it in the xml then.
for example
msg = Can't create Server object
and my xml file contains
<edt name="errors">
<ce>
<code>111</code>
<desc>Not here</desc>
</ce>
<ce>
<code>222</code>
<desc>Can't create Server object </desc>
</ce>
</edt>
for example
msg = Can't create Server object
and my xml file contains
<edt name="errors">
<ce>
<code>111</code>
<desc>Not here</desc>
</ce>
<ce>
<code>222</code>
<desc>Can't create Server object </desc>
</ce>
</edt>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
@ zc2
your last comment worked successfully.
thanks.
your last comment worked successfully.
thanks.
This should work even if the search string contains both single and double quote characters:
msg = "concat('" + msg.Replace( "'", "',\"'\",'" ) + "')";
XmlNode node = doc.SelectSingleNode("/edt/ce[normalize-space(desc)=" + msg + "]/code");
msg = msg.replace( "'", "'" )