У меня есть код, который должен либо добавить 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Скачать
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.
Атрибут | Тип данных | Доступ | Описание |
HANDLE | HANDLE | чтение | handle объекта XML-документа |
NAME | СHARACTER | чтение/запись | Имя источника XML-документа, например имя xml-файла. |
ENCODING | СHARACTER | чтение/запись | Определяет текстовую кодировку XML. Задает значение атрибута encoding пролога формируемого XML-докумета. |
SCHEMA-PATH | СHARACTER | чтение/запись | Список каталогов содержащих DTD |
NONAMESPACE-SCHEMA-LOCATION | СHARACTER | чтение/запись | Определяет расположение XML-схемы валидации формируемого XML-документа |
SUPPRESS-NAMESPACE-PROCESSING | LOGICAL | чтение/запись | |
NAMESPACE-URI | СHARACTER | чтение/запись | URI пространства имен |
NAMESPACE-PREFIX | СHARACTER | чтение/запись | Префикс пространства имен |
NUM-CHILDREN | INTEGER | чтение | Количество узлов в структуре XML-документа |
UNIQUE-ID | INTEGER | чтение | Уникальный ID объекта в рамках сессии |
SYSTEM-ID | CHARACTER | чтение | |
PUBLIC-ID | CHARACTER | чтение | |
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-NAMES | CHARACTER | чтение | Содержит список имен атрибутов элемента с разделителем запятая. Если элемент не имеет атрибутов значение — «» (пустая строка). |
CHILD-NUM | CHARACTER | Чтение | Порядковый номер узла среди своих родственников. Родственными узлами являются узлы принадлежащее одному родителю. Такие узлы нумеруются начиная с 1. Если узел не является дочерним — значение ? |
HANDLE | HANDLE | чтение | Содержит указатель на объект узла. |
INSTANTIATING-PROCEDURE | HANDLE | чтение | Содержит указатель процедуры, в которой данный узел был объявлен. |
LOCAL-NAME | |||
NAME | CHARACTER | чтение/запись | Имя узла |
NAMESPACE-PREFIX | СHARACTER | чтение/запись | Префикс пространства имен |
NAMESPACE-URI | СHARACTER | чтение/запись | URI пространства имен |
NODE-VALUE | СHARACTER | чтение/запись | Возвращает и устанавливает значение узла |
NUM-CHILDREN | INTEGER | чтение | Количество дочерних элементов |
OWNER-DOCUMENT | HANDLE | чтение | Содержит указатель на X-DOCUMENT, к которому относится узел |
SUBTYPE | СHARACTER | чтение | Тип узла. Возможны следующие значения:
|
TYPE | СHARACTER | чтение | Тип указателя. Значение «X-NODEREF» |
UNIQUE-ID | INTEGER | чтение | Уникальный 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.
Видео:6 важных структур данныхСкачать
СОЗДАНИЕ XML-ДОКУМЕНТА
В результате мы получим примерно следующий XML файл.
🎥 Видео
Введение в программирование и алгоритмы (базовый поток) 7-8. Бинарные деревья.Скачать
Учебный курс QPT. Тема 2: Выполнение запросовСкачать
Чтение и запись структуры в XML-файл с русским языком на С#.Скачать
Уроки C# / Как обработать ошибкуСкачать
Как исправить "Ошибка. Распространенный пакет среды выполнения VС++ не установленСкачать
#32 TDD подход при разработке сервиса меню NestJS подготовка данных | Джедай веб разработкиСкачать
Владимир Озеров — Как мы делали SQL в HazelcastСкачать
Как техническому специалисту реагировать на инциденты ИБСкачать
Наследование в ООП. Зачем использовать наследование?Скачать
Уроки C# – try, catch, finally, Обработка исключений, throw new Exception ex – Урок 13Скачать
ЧТО ТАКОЕ ПЕРЕЧИСЛЕНИЕ (ENUM) В ПРОГРАММИРОВАНИИ | ДЛЯ ЧЕГО НУЖЕН ENUM C# 😱Скачать
КАК УБИТЬ ЛЮБОЙ ПРОЦЕСС В WINDOWSСкачать
Уроки C# – Работа со строками – Replace, Contains, Remove, Trim, ToLower, ToUpperСкачать
POST ЗАПРОСЫ - C#Скачать
Лямбда выражения и анонимные методы в C# | Фрагмент курса "Делегаты и события"Скачать
Visual Studio + Access. Выполнение SQL-запросов INSERT INTO, DELETE, UPDATE. Работа с базой данныхСкачать
Как изменить программу открытия файла по умолчаниюСкачать