Я бы предложил следующее:
// defining a simple function, taking a string of HTML and a selector:
const textFromNode = (htmlString, nodeSelector) => {
// defining an element to contain the provided HTML str]irng:
let temp = document.createElement('div');
// assigning the htmlString as the innerHTML of the created element:
temp.innerHTML = htmlString;
// taking the results of the node.querySelectorAll() method and converting
// into an Array, using Array.from(); and then mapping that Array:
return Array.from(temp.querySelectorAll(nodeSelector)).map(
// returning the textContent of the node variable (a reference to the current
// node in the Array of nodes), using String.prototype.trim() to remove leading
// and trailing whitespace:
(node) => node.textContent.trim()
);
}
let array = [
'Asia 1234',
'Ireland 65dhh',
'US West323-hth',
'Asia Pacific ap-ss-1',
'US West us-323223-1'
],
// using Array.prototype.map() to return an Array based upon the
// array Array of strings:
ids = array.map(
(html) => {
// returning the results of the textFromNode() function:
return textFromNode(html, '.hide');
})
// using Array.prototype.reduce() to flatten the resulting Array:
.reduce((cur, acc) => {
return acc.concat(cur);
}, []);
console.log(ids);
Преимущество этого подхода состоит в том, что он избегает полагаться на регулярные выражения (обязательная ссылка на печально известный « RegEx соответствует открытым тегам, за исключением автономных тегов XHTML ] »), и использует только API DOM для более надежного восстановления строк из необходимых узлов. [ 1121]
Ссылки:
Чаще всего это происходит из-за кормления ISO-8859-x
(Latin-x, как Latin-1), но анализатор думает, что он получает UTF-8
. Определенные последовательности символов Latin-1 (два последовательных символа с ударением или умлаутами) образуют нечто, недопустимое как UTF-8
, и, в частности, такое, что на основе первого байта второй байт имеет неожиданные старшие биты.
Это может легко произойти, когда какой-то процесс выгружает XML
, используя Latin-1, но либо забывает вывести объявление XML
(в этом случае парсер XML
должен по умолчанию установить значение UTF-8
, согласно XML
спецификациям ) или утверждает, что это UTF-8
, даже если это не так.
У меня была такая же проблема. Моя проблема заключалась в том, что я создал новый XML-файл с помощью jdom и FileWriter (xmlFile) . FileWriter не удалось создать файл UTF-8. Вместо этого с помощью FileOutputStream (xmlFile) решил эту проблему.
Для тех, кто до сих пор получает такую ошибку.
, так как UTF-8 используется, проверьте ваш xml-документ на наличие латинских букв или около того: у меня была та же проблема, и причина была в том, что у меня было это:
<n:name>Åke Jógvan Øyvind</n:name>
Надеюсь, это поможет
Либо парсер настроен на UTF-8, даже если файл закодирован иначе, либо файл объявлен как использующий UTF-8, но на самом деле это не так.