XML DOM setNodeValue ("") на текстовом узле также удаляет открывающий тег содержащего его элемента - PullRequest
0 голосов
/ 08 декабря 2018

Рассмотренный оригинальный элемент xml выглядит примерно так:

<Sender>name</Sender>

Вызов

node.setNodeValue("");

для узла типа text удаляет открывающий тег содержащего его элемента, в результате чего получается

</Sender>

Когда я звоню

node.setNodeValue("something");

, тогда все работает как положено.

<Sender>something</Sender>

Что-то не так с этим подходом?Что я хочу сделать, это удалить текстовое содержимое.

<Sender></Sender>

1 Ответ

0 голосов
/ 08 декабря 2018

Посмотрите еще раз внимательно, что вы получаете после вызова

node.setNodeValue("");

Я уверен, что вы получили <Sender/>, но не </Sender>.

<Sender/> - пустой элементtag.
Это сокращенное обозначение, обозначающее то же, что и <Sender></Sender> (начальный тег и конечный тег без содержимого между ними)..

См. XML-спецификацию (раздел 3.1) , в которой говорится:

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

Таким образом, оба они семантически эквивалентны, и, следовательно, нет смысла хотеть одно вместо другого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...