How to write APOSTROPHE into an XML SelectNodes statement????

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Alan Mailer

    How to write APOSTROPHE into an XML SelectNodes statement????

    Ok, I've looked for an answer for this, because I'm sure it's been
    asked a thousand times... but no luck... so here goes.

    Imagine I want to create a NodeList based on an XPath statement. The
    'query' portion of that statement wants to search for the following
    value:

    Joe's Garage

    ....now please note the APOSTROPHE in the above string.

    Now, you VB.Net & XML experts know the following will NOT work:

    myXmlNodeList =
    MyXmlDoc.Select Nodes("MyParent Node/SomeOtherNode[Title='Joe's
    Garage'])

    ....because the *apostrophe* in "Joe's" will screw the statement up and
    cause an error to be triggered.

    So... precisely how would you experts write the above SelectNodes
    statement so that VB.Net would NOT trigger a darn error?

    Thanks in advance for your help.
  • Martin Honnen

    #2
    Re: How to write APOSTROPHE into an XML SelectNodes statement????

    Alan Mailer wrote:
    myXmlNodeList =
    MyXmlDoc.Select Nodes("MyParent Node/SomeOtherNode[Title='Joe's
    Garage'])
    >
    ...because the *apostrophe* in "Joe's" will screw the statement up and
    cause an error to be triggered.
    >
    So... precisely how would you experts write the above SelectNodes
    statement so that VB.Net would NOT trigger a darn error?
    MyXmlDoc.Select Nodes("MyParent Node/SomeOtherNode[Title=""Joe's
    Garage""]")

    should do. It only gets complicated if you need to use a double quote
    and a single quote together in the string literal.


    --

    Martin Honnen --- MVP XML

    Comment

    • Alan Mailer

      #3
      Re: How to write APOSTROPHE into an XML SelectNodes statement????

      On Fri, 18 Jul 2008 13:09:18 +0200, Martin Honnen <mahotrash@yaho o.de>
      wrote:
      >Alan Mailer wrote:
      >
      >myXmlNodeLis t =
      >MyXmlDoc.Selec tNodes("MyParen tNode/SomeOtherNode[Title='Joe's
      >Garage'])
      >>
      >...because the *apostrophe* in "Joe's" will screw the statement up and
      >cause an error to be triggered.
      >>
      >So... precisely how would you experts write the above SelectNodes
      >statement so that VB.Net would NOT trigger a darn error?
      >
      MyXmlDoc.Select Nodes("MyParent Node/SomeOtherNode[Title=""Joe's
      >Garage""]")
      >
      >should do. It only gets complicated if you need to use a double quote
      >and a single quote together in the string literal.
      Martin, thanks for responding. It's a little hard to read your
      suggestion, so I'm going to parse it here and hope you'll let me know
      if I'm reading it correctly. Parsed out, your SelectNodes statement
      is written as follows:

      Double Quotes
      MyParentNode/SomeOtherNode[Title=
      Double Quotes
      Double Quotes
      Joe's Garage
      Double Quotes
      Double Quotes
      ]
      Double Quotes

      ....If you have a moment to handle this follow-up question, I'd really
      appreciate it. Have I read your suggestion correctly?

      Comment

      • Martin Honnen

        #4
        Re: How to write APOSTROPHE into an XML SelectNodes statement????

        Alan Mailer wrote:
        On Fri, 18 Jul 2008 13:09:18 +0200, Martin Honnen <mahotrash@yaho o.de>
        wrote:
        >
        >Alan Mailer wrote:
        >>
        >>myXmlNodeLi st =
        >>MyXmlDoc.Sele ctNodes("MyPare ntNode/SomeOtherNode[Title='Joe's
        >>Garage'])
        >>>
        >>...because the *apostrophe* in "Joe's" will screw the statement up and
        >>cause an error to be triggered.
        >>>
        >>So... precisely how would you experts write the above SelectNodes
        >>statement so that VB.Net would NOT trigger a darn error?
        > MyXmlDoc.Select Nodes("MyParent Node/SomeOtherNode[Title=""Joe's
        >Garage""]")
        >>
        >should do. It only gets complicated if you need to use a double quote
        >and a single quote together in the string literal.
        >
        Martin, thanks for responding. It's a little hard to read your
        suggestion, so I'm going to parse it here and hope you'll let me know
        if I'm reading it correctly. Parsed out, your SelectNodes statement
        is written as follows:
        >
        Double Quotes
        MyParentNode/SomeOtherNode[Title=
        Double Quotes
        Double Quotes
        Joe's Garage
        Double Quotes
        Double Quotes
        ]
        Double Quotes
        >
        ...If you have a moment to handle this follow-up question, I'd really
        appreciate it. Have I read your suggestion correctly?
        Yes, with VB if you want to include a double quote inside a string
        literal then you need to double the double quote, see

        where it says:
        You must enclose a String literal within quotation marks (" "). If you
        need to include a quotation mark as one of the characters in the string,
        you use two contiguous quotation marks (""). The following example
        illustrates this.


        Dim j As String = "Joe said ""Hello"" to me."


        --

        Martin Honnen --- MVP XML

        Comment

        Working...