Подлежащий удалению узел не является дочерним по отношению к этому узлу

Видео:6 важных структур данныхСкачать

6 важных структур данных

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

У меня есть код, который должен либо добавить XmlElement к корневому элементу документа, либо заменить существующий элемент, если он есть. Вот мой код:

Если я добавляю новый элемент, это не проблема. Однако, когда я пытаюсь добавить новый элемент, я получаю ArgumentException , в котором говорится: «узел, который должен быть удален, не является дочерним элементом этого узла»

Это приложение 2.0.

1 ответ

Может ли кто-нибудь объяснить мне, почему я не могу удалить этот childnode с помощью этого запроса. Это дает мне ошибку, говорящую: необработанное исключение типа ‘System.ArgumentException’ произошло в System.Xml.dll. Дополнительная информация: узел, подлежащий удалению, не является дочерним по.

У меня проблема с Javascript. Я получаю это сообщение об ошибке: Uncaught NotFoundError: не удалось выполнить ‘insertBefore’ на ‘Node’: узел, перед которым должен быть вставлен новый узел, не является дочерним по отношению к этому узлу. Javascript: var vidCounter = 0; vidCounter++; var.

Как указано в документах , первым аргументом ReplaceChild должен быть новый узел, а не старый.

Похожие вопросы:

Я хочу получить все значения generateId текстовых узлов, которые являются дочерними по отношению к определенному узлу, значение атрибута id которого известно. Я могу проверить это состояние с.

Как я могу использовать события blur() и keypress() с replaceWith() в JQuery? Я попробовал этот код ниже, он работает с blur() без каких-либо ошибок, просто выстрелил слово ‘undefined’, но когда я.

Я использую XPath для выбора узла отчета. Теперь я хочу знать, как я могу удалить этот узел из документа, не зная, какие это дочерние узлы? Я попытался вызвать .RemoveChild , и он выдает эту ошибку.

Может ли кто-нибудь объяснить мне, почему я не могу удалить этот childnode с помощью этого запроса. Это дает мне ошибку, говорящую: необработанное исключение типа ‘System.ArgumentException’.

У меня проблема с Javascript. Я получаю это сообщение об ошибке: Uncaught NotFoundError: не удалось выполнить ‘insertBefore’ на ‘Node’: узел, перед которым должен быть вставлен новый узел, не.

Я не вижу, что делаю не так. Я получаю кучу списков выбора (выпадающих списков) и хочу заменить их на , так что вот мой код: var selectListElements =.

Не удалось выполнить ‘removeChild’ на ‘Node’: узел, подлежащий удалению , не является дочерним по отношению к этому узлу. Я получаю ошибку, когда выполняю этот код ниже. Есть ли какие-то способы.

Я создал таблицу в своем документе, используя: document.body.appendChild(table) теперь каждый раз когда я делаю изменения на моем столе я хочу бежать document.body.removeChild(table).

Нажав на кнопку в одном компоненте, я удаляю компонент в Родительском с таким кодом: // componentA.jsx class ComponentA extends React.PureComponent < removeB() < this.setState() >.

Я пытаюсь использовать jquery datatables в приложении react. Я знаю, что jquery и react не играют хорошо вместе. Я очень доволен jquery datatables и не смог найти никаких сопоставимых компонентов.

Видео:Хирурги Ванушко В.Э., Слепцов И.В.: Узлы ЩЖ, диагностика и лечение. Где мы находимся, куда движемся?Скачать

Хирурги Ванушко В.Э., Слепцов И.В.: Узлы ЩЖ, диагностика и лечение. Где мы находимся, куда движемся?

Не удалось выполнить removeChild на узле

Подлежащий удалению узел не является дочерним по отношению к этому узлу

Другие ответы на стек, такие как этот, и это, похоже, являются специализированными случаями, и я считаю, что мой случай более общий. Я делаю это в своем js:

Все работает правильно и, как ожидалось (div правильно добавлен, и я его вижу), пока не будет вызван , и тогда я получаю сообщение об ошибке .

Что я делаю неправильно?

Ваш элемент не является дочерним по отношению к контейнеру player. Это дочерний элемент , который вы создали для него в качестве оболочки ( в первой части кода). Вот почему он не работает, удаляет только детей, а не потомков.

Вы бы хотели удалить этот div-обертку или не добавлять его вообще.

Вот вариант «не добавлять его вообще»:

Или без использования оболочки (хотя это очень удобно для анализа этого HTML):

  • Я только что узнал о функции «Выполнить фрагмент кода»

Прямым родителем вашего ребенка является markerDiv, поэтому вы должны вызвать remove из markerDiv следующим образом:

В качестве альтернативы вы можете удалить markerNode. Поскольку этот узел был добавлен непосредственно в videoContainer, его можно удалить с помощью:

Теперь самый простой способ удалить узел, если вы абсолютно уверены, что вставили его в DOM, это следующий:

Это работает для любого узла (просто замените markerDiv другим узлом) и находит родительский узел напрямую, чтобы вызвать его удаление. Если вы не уверены, добавили ли вы его, дважды проверьте, не является ли parentNode ненулевым, прежде чем вызывать removeChild.

Мне помогла подсказка обернуть проблемный элемент в другой HTML-тег. Однако мне также нужно было добавить ключ к этому тегу HTML. Например:

Как уже упоминали другие, является дочерним по отношению к , а не к . Если вы хотите удалить , но по какой-то причине сохранить , вы можете сделать следующее

Я обернул его как родитель, когда я изменил его на нормальный, div, он работал нормально

Видео:Криминальная Россия «Последний узел» 2005Скачать

Криминальная Россия «Последний узел» 2005

OpenEdge ABL

Document Object Model (DOM) представляет XML-документ в виде создаваемого в памяти дерева объектов (узлов), определяющих структуру XML. Создание дерева объектов в памяти является удобным способом работы с данными, но ограничивается ее доступным объемом. Таким образом, применение DOM отлично подходит при работе с небольшими XML документами.

XML-документ в ABL DOM представляется объектом X-DOCUMENT.

DEF VAR hDocument AS HANDLE NO-UNDO.
CREATE X-DOCUMENT hDocument.

XML-узлы, представляются объектами X-NODEREF.

DEFINE VARIABLE hNode AS HANDLE NO-UNDO.
CREATE X-NODEREF hNode.

XML-узлы разделяются по типу. Каждому XML-узлу указывается его тип, который определяет его характеристики и функциональность. Различаются следующие типы узлов:

  • ATTRIBUTE;
  • CDATA-SECTION;
  • COMMENT;
  • DOCUMENT-FRAGMENT;
  • ELEMENT;
  • ENTITY-REFERENCE;
  • PROCESSING-INSTRUCTION;
  • TEXT.

В качестве примера, рассмотрим XML-документ test.xml:

В DOM данный документ представляется следующим деревом объектов:

Подлежащий удалению узел не является дочерним по отношению к этому узлу

Каждый узел имеет своего единственного «родителя» (узел, располагающийся непосредственно над ним). Родительские узлы, в свою очередь, обладают так называемыми дочерними узлами (узлами, расположенными непосредственно под ними). У одного «родителя» может быть несколько дочерних узлов, при этом, каждый из них имеет свой порядковый номер начиная с 1.

На основе таких родительско-дочерних связей и формируется DOM структура XML-документа.

Стоит отметить, что атрибуты (узлы с типом ATTRIBUTE) не являются ни чьими дочерними или родительскими узлами, а относятся непосредственно к узлу элементу (узел с типом ELEMENT).

После завершения работы все созданные объекты должны быть удалены.

DELETE OBJECT hDocument.
DELETE OBJECT hNode.

Работа с XML-документом осуществляется с помощью атрибутов и методов объектов X-DOCUMENT и X-NODEREF.

АтрибутТип данных
ДоступОписание
HANDLEHANDLEчтениеhandle объекта XML-документа
NAMEСHARACTERчтение/записьИмя источника XML-документа, например имя xml-файла.
ENCODINGСHARACTERчтение/записьОпределяет текстовую кодировку XML. Задает значение атрибута encoding пролога формируемого XML-докумета.
SCHEMA-PATHСHARACTERчтение/записьСписок каталогов содержащих DTD
NONAMESPACE-SCHEMA-LOCATIONСHARACTERчтение/записьОпределяет расположение XML-схемы валидации формируемого XML-документа
SUPPRESS-NAMESPACE-PROCESSINGLOGICALчтение/запись
NAMESPACE-URIСHARACTERчтение/записьURI пространства имен
NAMESPACE-PREFIXСHARACTERчтение/записьПрефикс пространства имен
NUM-CHILDRENINTEGERчтениеКоличество узлов в структуре XML-документа
UNIQUE-IDINTEGERчтениеУникальный ID объекта в рамках сессии
SYSTEM-IDCHARACTERчтение
PUBLIC-IDCHARACTERчтение
TYPEСHARACTERчтениеТип указателя. Значение «X-DOCUMENT»
SUBTYPEСHARACTERчтениеЗначение «DOCUMENT»
МетодОписание
ADD-SCHEMA-LOCATION()Задает расположение XML-схемы.
APPEND-CHILD()Добавляет дочерний узел в структуру XML-документа.
CREATE-NODE()Создает узел.
CREATE-NODE-NAMESPACE()Создает элемент определяющий пространство имен XML-документа.
GET-CHILD()Возвращает дочерний узел по его порядковому номеру. Нумерация узлов начинается с 1.
GET-DOCUMENT-ELEMENT()Возвращает корневой элемент XML-документа.
IMPORT-NODE()Импортирует узел из другого XML-документа
INITIALIZE-DOCUMENT-TYPE()Создает новый XML-документ согласно описанию DTD.
INSERT-BEFORE()Добавляет дочерний узел в структуру документа после указываемого.
LOAD()Загружает XML-документ в память для последующей работы с ним как с объектом X-DOCUMENT.
REMOVE-CHILD()Открепляет узел и все его поддерево из структуры XML-документа. Сам узел при этом не удаляется из памяти
REPLACE-CHILD()Заменяет узел новым. При этом старый узел не удаляется из памяти, а просто открепляется от структуры XML-документа.
SAVE()Осуществляет формирование XML-документа из объекта X-DOCUMENT.

ADD-SCHEMA-LOCATION(targetNamespace, location) — данный метод определяет расположение XML-схемы валидации XML-документа посредством пространства имен и физического расположения файла XML-схемы.

  • targetNamespace — пространство имен, значение CHARACTER типа;
  • location — значение CHARACTER типа, определяющее расположение файла XML-схемы.

APPEND-CHILD(x-node-handle) — добавляет существующий узел как последний дочерний узел в структуре XML задаваемого родительского узла. Другими словами данный метод осуществляет размещение существующего узла, открепленного раннее от структуры XML, или созданного с помощью методов CREATE-NODE(), CREATE-NODE-NAMESPACE() или CLONE-NODE().

  • x-node-handle — handle X-NODREF объекта добавляемого узла.

CREATE-NODE(x-node-handle, name, type) — создает узел в текущем XML-документе.

  • x-node-handle — handle X-NODREF объекта , в который будет записан указатель создаваемого нового узла.
  • name — имя создаваемого узла, тип CHARACTER;
  • type — SUBTYPE создаваемого элемента, тип CHARACTER.

CREATE-NODE-NAMESPACE(x-node-handle, namespace-uri, qualified-name, type) — задает пространство имен документа. Может быть заданно как в простом виде — y, так и в составном — x:y.

  • x-node-handle — handle X-NODREF объекта, в который будет записан указатель создаваемого нового узла;
  • namespace-uri — Uniform Resource Identifier (URI) пространства имен, CHARACTER типа;
  • qualified-name —
  • type — SUBTYPE узла, может принимать значение ELEMENT или ATTRIBUTE.

GET-CHILD(x-node-handle, index) — возвращает handle дочернего узла с порядковым номером index.

  • x-node-handle — handle возвращаемого узла;
  • index — порядковый номер узла.

GET-DOCUMENT-ELEMENT(x-node-handle) — возвращает handle X-NODEREF корневого элемента XML-документа.

IMPORT-NODE(x-node, x-source-node, deep) — данный метод осуществляет импорт узла из другого XML-документа, но не размещает его в структуре XML. После того как новый узел импортирован, его необходимо включить в структуру XML с помощью методов APPEND-CHILD() или INSERT-BEFORE().

  • x-node — handle предварительно созданного X-NODREF объекта, в который будет осуществляться импорт;
  • x-source-node — handle импортируемого X-NODREF объекта;
  • deep — значение LOGICAL типа, определяющее осуществлять импорт всего поддерева элемента (TRUE) или импортировать только непосредственно сам элемент (FALSE). З начением по умолчанию является FALSE.

INSERT-BEFORE(x-ref-handle1, x-ref-handle2) — осуществляет добавление узла в структуру XML как дочернего по отношению к тому узлу, чей метод вызывается и размещаемого после указываемого другого дочернего узла этого же родителя. Если узел, за которым должен быть размещен добавляемый элемент не указан, то он будет последним дочерним узлом.

  • x-ref-handle1 — handle объекта X-NODREF имеющегося в структуре узла, за которым необходимо разместить добавляемый в структуру узел;
  • x-ref-handle2 — handle объекта X-NODREF добавляемого узла. Данный узел должен быть предварительно создан.

LOAD(mode < file | memptr | longchar >, validate) — осуществляет загрузку XML-документа из указываемого источника в память, разбирает его и формирует X-DOCUMENT для последующей работы с ним.

  • mode — значение CHARACTER типа, определяющие тип источника XML-документа. Может принимать следующие значения: «FILE», «MEMPTR», или » LONGCHAR»;
  • < file | memptr | longchar > — идентификатор источника данных. Для файла — это его полный или относительный путь, для переменных — идентификатор переменной и т.д;
  • validate — значение LOGICAL типа, определяющие осуществлять валидацию загружаемого XML-документа (TRUE), или не осуществлять ее (FALSE).

REMOVE-CHILD(x-node-handle) — открепляет узел и все его поддерево от структуры XML-документа. Сам узел при этом не удаляется, а остается в памяти.

  • x-node-handle — handle X-NODREF объекта открепляемого узла .

REPLACE-CHILD(new-handle, old-handle) — осуществляет замещение одного узла другим. При этом замещаемый узел только открепляется от структуры XML-документа, а не удаляется. Если замещающий узел находится в структуре XML-документа, то он первоначально открепляется от документа, а после прикрепляется на место замещаемого.

  • new-handle — handle X-NODREF объекта замещающего узла ;
  • old-handle — handle X-NODREF объекта замещаемого узла.

SAVE(mode, < file | stream | stream-handle | memptr | longchar >) — осуществляет формирование и вывод текста XML-документа из X-DOCUMENT.

  • mode — значение CHARACTER типа, определяющие тип приемника XML-документа. Может принимать следующие значения: «FILE», «STREAM», «STREAM-HANDLE», «MEMPTR», или «LONGCHAR»;
  • < file | stream | stream-handle | memptr | longchar > — определение приемника XML-документа.
АтрибутТип данныхДоступОписание
ATTRIBUTE-NAMESCHARACTERчтениеСодержит список имен атрибутов элемента с разделителем запятая. Если элемент не имеет атрибутов значение — «» (пустая строка).
CHILD-NUMCHARACTERЧтениеПорядковый номер узла среди своих родственников. Родственными узлами являются узлы принадлежащее одному родителю. Такие узлы нумеруются начиная с 1. Если узел не является дочерним — значение ?
HANDLEHANDLEчтениеСодержит указатель на объект узла.
INSTANTIATING-PROCEDUREHANDLEчтениеСодержит указатель процедуры, в которой данный узел был объявлен.
LOCAL-NAME
NAMECHARACTERчтение/записьИмя узла
NAMESPACE-PREFIXСHARACTERчтение/записьПрефикс пространства имен
NAMESPACE-URIСHARACTERчтение/записьURI пространства имен
NODE-VALUEСHARACTERчтение/записьВозвращает и устанавливает значение узла
NUM-CHILDRENINTEGERчтениеКоличество дочерних элементов
OWNER-DOCUMENTHANDLEчтениеСодержит указатель на X-DOCUMENT, к которому относится узел
SUBTYPEСHARACTERчтениеТип узла. Возможны следующие значения:

  • ATTRIBUTE;
  • CDATA-SECTION;
  • COMMENT;
  • DOCUMENT-FRAGMENT;
  • ELEMENT;
  • ENTITY-REFERENCE;
  • PROCESSING-INSTRUCTION;
  • TEXT.
TYPEСHARACTERчтениеТип указателя. Значение «X-NODEREF»
UNIQUE-IDINTEGERчтениеУникальный ID узла в рамках XML-документа
МетодОписание
APPEND-CHILD()Добавляет узел в конец XML-документа или другого узел
CLONE-NODE()Осуществляет клонирование существующего узла
DELETE-NODE()Удаляет узел
GET-ATTRIBUTE()Возвращает значение указанного атрибута элемента
GET-ATTRIBUTE-NODE()Возвращает handle указанного атрибута элемента
GET-CHILD()Возвращает handle дочернего узла
GET-PARENT()Возвращает handle родительского узла
INSERT-BEFORE()Добавляет узел в структуру документа после указываемого другого дочернего узла того же родителя.
LONGCHAR-TO-NODE-VALUE()Присваивает значение LONGCHAR типа узлу XML
MEMPTR-TO-NODE-VALUE()Присваивает значение MEMPTR типа узлу XML
NODE-VALUE-TO-LONGCHAR()Преобразовывает значение NODE-VALUE в LONGCHAR тип
NODE-VALUE-TO-MEMPTR()Преобразовывает значение NODE-VALUE в MEMPTR тип
NORMALIZE()
REMOVE-ATTRIBUTE()Удаляет указываемый атрибут элемента
REMOVE-CHILD()Открепляет узел и все его поддерево из структуры XML-документа. Сам узел при этом не удаляется из памяти
REPLACE-CHILD()Заменяет узел другим узлом в структуре XML-документа. Заменяемый узел при этом не удаляется из памяти.
SET-ATTRIBUTE()Добавляет атрибут элементу.
SET-ATTRIBUTE-NODE()Связывает указываемый атрибут с текущим элементом

CLONE-NODE(x-node-handle, deep) — осуществляет клонирование текущего узла.

  • x-node-handle — handle предварительно созданного X-NODREF объекта, в который будет осуществляться клонирование;
  • deep — значение LOGICAL типа, отражающее клонировать все дерево узла (TRUE), или только сам узел (FALSE). Значением по умолчанию является FALSE.

DELETE-NODE() — открепляет узел от структуры XML и удаляет его из памяти.

GET-ATTRIBUTE(name) — возвращает значение указанного атрибута элемента.

  • name — имя атрибута, тип CHARACTER.

GET-ATTRIBUTE-NODE(attr-node-handle, name) — возвращает handle указанного атрибута элемента.

  • attr-node-handle — handle возвращаемого атрибута;
  • name — имя возвращаемого атрибута, тип CHARACTER.

GET-PARENT(x-node-handle) — возвращает handle родителя. Для корневого элемента XML возвращается неизвестное значение (?).

  • x-node-handle — handle возвращаемого родительского узла.

LONGCHAR-TO-NODE-VALUE(longchar) — метод присвоения значения LONGCHAR типа атрибуту X-NODEREF:NODE-VALUE .

  • longchar — присваиваемое значение LOGNCHAR типа.

MEMPTR-TO-NODE-VALUE(memptr) — метод присвоения значения MEMPTR типа атрибуту X-NODEREF:NODE-VALUE .

  • memptr — присваиваемое значение MEMPTR типа.

NODE-VALUE-TO-LONGCHAR(longchar [codepage]) — метод вывода значения X-NODEREF:NODE-VALUE с преобразованием значения в LONGCHAR тип в указываемой текстовой кодировке.

  • longchar — приемник значения, тип LONGCHAR;
  • codepage — текстовая кодировка, тип CHARCTER.

NODE-VALUE-TO-MEMPTR(memptr) — метод вывода значения X-NODEREF:NODE-VALUE с преобразованием значения в тип MEMPTR .

  • memptr — приемник значения, тип MEMPTR.

REMOVE-ATTRIBUTE(<attribute-name | index> [, namespaceURI]) — удаляет атрибут элемента. Если удаляемому атрибуту определено начальное значение в описании DTD, то он устанавливается для атрибута.

  • attribute-name — имя атрибута, тип CHARACTER;
  • index — порядковый номер атрибута в списке атрибутов элемента (нумерация начинается с 1), тип INTEGER;
  • namespaceURI — URI пространства имен элемента, тип CHARACTER.

SET-ATTRIBUTE(name, value) — добавляет атрибут элементу. Если атрибут с таким именем уже существует у элемента, то его значение заменятся значением добавляемого атрибута .

  • name — имя добавляемого атрибута, тип CHARACTER;
  • value — значение атрибута, тип CHARACTER.

Видео:Учебный курс QPT. Тема 2: Выполнение запросовСкачать

Учебный курс QPT. Тема 2: Выполнение запросов

СОЗДАНИЕ XML-ДОКУМЕНТА

В результате мы получим примерно следующий XML файл.

🎦 Видео

Введение в программирование и алгоритмы (базовый поток) 7-8. Бинарные деревья.Скачать

Введение в программирование и алгоритмы (базовый поток) 7-8. Бинарные деревья.

Уроки C# / Как обработать ошибкуСкачать

Уроки C# / Как обработать ошибку

Чтение и запись структуры в XML-файл с русским языком на С#.Скачать

Чтение и запись структуры в XML-файл с русским языком на С#.

Как исправить "Ошибка. Распространенный пакет среды выполнения VС++ не установленСкачать

Как исправить "Ошибка. Распространенный пакет среды выполнения VС++ не установлен

Как техническому специалисту реагировать на инциденты ИБСкачать

Как техническому специалисту реагировать на инциденты ИБ

Владимир Озеров — Как мы делали SQL в HazelcastСкачать

Владимир Озеров — Как мы делали SQL в Hazelcast

Уроки C# – try, catch, finally, Обработка исключений, throw new Exception ex – Урок 13Скачать

Уроки C# – try, catch, finally, Обработка исключений, throw new Exception ex  – Урок 13

#32 TDD подход при разработке сервиса меню NestJS подготовка данных | Джедай веб разработкиСкачать

#32 TDD подход при разработке сервиса меню NestJS подготовка данных | Джедай веб разработки

Наследование в ООП. Зачем использовать наследование?Скачать

Наследование в ООП. Зачем использовать наследование?

POST ЗАПРОСЫ - C#Скачать

POST ЗАПРОСЫ - C#

ЧТО ТАКОЕ ПЕРЕЧИСЛЕНИЕ (ENUM) В ПРОГРАММИРОВАНИИ | ДЛЯ ЧЕГО НУЖЕН ENUM C# 😱Скачать

ЧТО ТАКОЕ ПЕРЕЧИСЛЕНИЕ (ENUM) В ПРОГРАММИРОВАНИИ | ДЛЯ ЧЕГО НУЖЕН ENUM C# 😱

Уроки C# – Работа со строками – Replace, Contains, Remove, Trim, ToLower, ToUpperСкачать

Уроки C# – Работа со строками – Replace, Contains, Remove, Trim, ToLower, ToUpper

Лямбда выражения и анонимные методы в C# | Фрагмент курса "Делегаты и события"Скачать

Лямбда выражения и анонимные методы в C# | Фрагмент курса "Делегаты и события"

КАК УБИТЬ ЛЮБОЙ ПРОЦЕСС В WINDOWSСкачать

КАК УБИТЬ ЛЮБОЙ ПРОЦЕСС В WINDOWS

Visual Studio + Access. Выполнение SQL-запросов INSERT INTO, DELETE, UPDATE. Работа с базой данныхСкачать

Visual Studio + Access. Выполнение SQL-запросов INSERT INTO, DELETE, UPDATE. Работа с базой данных

Как изменить программу открытия файла по умолчаниюСкачать

Как изменить программу открытия файла по умолчанию
Поделиться или сохранить к себе:
История русского языка 📕