XPath (v1) contains no way to encode expressions.
If you only have single OR double quotes then you can use expressions such as
//review[@name="Bob's Pizza"]
//review[@name='"Pizza" Pam']
But if you have BOTH e.g [Fred's "Fancy Pizza"] then you have to use something like this Escaping Strings in XPath (C++) to generate
//review[@name=Concat("Fred's ",'"Fancy Pizza"')]
Anyone have a function in c# to do this?
Some links that are close
- Use the MVP.XML library and XPathVariable (a very good solution but a bit heavyweight for my needs).
- Doesn't encode where both " and ' are present
- Adds more arguments to the Concat operation than is necessary e.g. would return //review[@name=concat('Fred', "'", 's ', '"', 'Fancy Pizza', '"', '')]
EDIT: A few answers have suggested escaping ' with ' and " with " but although this makes sense it does not work, try it using the XML fragment
<review name="Bob's Pizza"/>
and the xpath
//review[@name='Bob's Pizza']