Прочитайте XML атрибут текста и замените некоторые слова в середине текста - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь прочитать XML значение атрибута узла в виде строки и заменить некоторые слова в середине найденного текста. Однако до сих пор мне не удалось добиться этого успеха. Позвольте мне уточнить мою проблему.

Я читаю внешний файл XML (используя fs) и читаю содержимое с помощью dom parser. и я пытаюсь заменить некоторые слова, которые содержатся в одном из текста атрибута узла. Пример того, что я пытаюсь сделать, приведен ниже.

<!DOCTYPE html>
<html>
<body>    
<p id="demo"></p>    
<script type="text/javascript">  

var parser, xmlDoc;
var text = "<bookstore><book>" +
"<title>test title</title>" +
"<author biography="Video provides a powerful way to help you prove your point.&#x28;&#x29; When you click Online Video, you can paste in the embed code for the video you want to add. You can also type a keyword to search online for the video that best fits your document.&#x28;&#x29; To make your document look professionally produced, Word provides header, footer, cover page, and text box designs that complement each other.&#x28;&#x29;For example, you can add a matching cover page, header, and sidebar.">Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";

parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");

var xy0 = xmlDoc.getElementsByTagName('author');
var xy1 = xy0.getAttribute('biography');
var xy2= xy1.replace("&#xd;&#xa;","<br><br>");
console.log(xy2);

</script>    
</body>
</html>

enter image description here

Однако это не заменяет текст, как ожидалось. Возможно ли этого добиться? Если нет, каковы возможные альтернативы? Пожалуйста, будьте любезны, чтобы пролить свет на это. Заранее спасибо

1 Ответ

0 голосов
/ 09 апреля 2020

Наконец я смог определить проблему. JavaScript не распознает "&#xd;&#xa;", он распознает его как новую строку. Так что исправить просто, мне просто нужно заменить "&#xd;&#xa;" на \ n

var xy2= xy1.replace("\n","<br>");
...