Arduino SPI Communication with H3LIS100DL accelerometer
The basic SPI operations looks like this. First read single register:

uint8_t readRegister(int index)
{
  digitalWrite(CS, LOW);
  SPI.beginTransaction(SPI_SETTING);
  SPI.transfer(READ | index);
  uint8_t res = SPI.transfer(0);
  SPI.endTransaction();
  digitalWrite(CS, HIGH);
  return (res);
}


And second write single register:

void writeRegister(int index, uint8_t data)
{
  digitalWrite(CS, LOW);
  SPI.beginTransaction(SPI_SETTING);
  SPI.transfer(WRITE | index);
  SPI.transfer(data);
  SPI.endTransaction();
  digitalWrite(CS, HIGH);
}


Some more details:

const uint8_t WRITE = 0x00;
const uint8_t READ = 0x80;


It is also possible to read/write a sequence of registers by providing the register index with the MS set. This will auto-increment the register index. 

SPI_SETTING is left as an exercise (to be updated).  

Cheers!