I means, if I have a transaction's one-time public and private key, I can spend it even I don't have a Monero address. Right? I see that there isn't the sender's any infomation in transaction.
That's right. Normally, your wallet uses your private view and spend keys to recover the one-time key and uses it to sign a transaction spending that one-time key. If you already have the one-time private key somehow, you don't need to recover it and you could spend it by itself. I'm not aware of any tools existing which would let you do it, but they could be built.