Вы можете попробовать это, это, вероятно, безопаснее и точнее, чем использование регулярных выражений (в случае, если у вас есть несколько тегов с одинаковым именем в XML-документе.
const { transform } = require('camaro')
let sampleXML = `<Response>
<Header>
<tag1>I am trying to get this</tag1>
<tag2>This one too</tag2>
</Header>
<Detail>
<tag1>XYZ</tag1>
<tag2>ABC</tag2>
</Detail>
</Response>`
;(async function () {
const template = {
betweenString: 'raw(Response/Header)'
}
const result = await transform(sampleXML, template)
console.log('Between String:' + result.betweenString)
})()
output
Between String:<Header>
<tag1>I am trying to get this</tag1>
<tag2>This one too</tag2>
</Header>
это работает путем синтаксического анализа xml, получения узла (через xpath - мы указываем, где его получить Response/Header
) и печати текста узла, однако, в вашем случае, вы, вероятно, захотите удалить open и close Header
тег после разбора.