No. XLIFF 1.2 allows one target-language per <file> element and XLIFF 2.x one trgLang per document, and every translation unit holds a single <target>. Export one file per target language instead.
Either escape the markup as text (<b> or CDATA), which tools treat as translatable text, or use XLIFF inline elements (<g>, <x/>, <ph> in 1.2; <pc>, <ph> in 2.0) so tools protect it. For line breaks, use or a literal newline under xml:space="preserve".
Extract source strings into one XLIFF file per target language with your framework's tool, send the files to a CAT tool or TMS, get them back with filled <target> elements and translated states, and import them. Keep ids stable so re-extraction preserves translations.
There is no single best one. Poedit and OmegaT are free desktop editors for XLIFF 1.2 and 2.x, Matecat is a free web CAT tool, Okapi Rainbow and Tikal cover batch extraction and conversion, and Xcode round-trips its own exports.
XLIFF 1.2 (2008) uses <trans-unit> with the languages on <file>; XLIFF 2.0 (2014) and 2.1 (2018) use <unit> and <segment>, put srcLang and trgLang on the root, and are not backward compatible. Changing the version attribute does not convert a file; re-export it or convert with Okapi.