Body class name has an ampersand I am styling a page in a Drupal 7 site that has the title "Weddings &amp; Private Events" and a URL alias of /weddings-private-events but the body class name is weddings-&amp;-private-events which is invalid in CSS
 See screenshot below: 

Is this a bug in D7? I'm using 7.26. Is there a way for me to fix this? I want to style a page specific element without using the node id which may change on export.
It's not a D7 bug - all core code uses drupal_html_class(), which removes any dodgy characters (including ampersands) by running the incoming string through drupal_clean_css_identifier(). 

Presumably your theme (or a custom/contrib module) is adding a class without sanitising it. Look for something like:

function MYTHEME_preprocess_html(&amp;$vars) {
  if ($node = menu_get_object()) {
    $vars['classes_array'][] = str_replace(' ', '-', $node-&gt;title);
  }
}


and change it to use

$vars['classes_array'][] = drupal_html_class($node-&gt;title);