Главная страница
Навигация по странице:

  • XmlAttributeCollection

  • XmlAttribute

  • CreateAttribute

  • Выходные данные Также можно создать узел XmlAttribute

  • InsertBefore и InsertAfter

  • InsertBefore

  • XmlText и XmlEntityReference

  • XmlConvert

  • CreateEntityReference

  • Примечание Модель DOM добавляет дочерние узлы к узлу EntityReference

  • XmlDataDocument

  • EntityReference

  • МУ_ЛР_ЛиПОАС. Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем


    Скачать 2.76 Mb.
    НазваниеМетодические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем
    Дата12.04.2023
    Размер2.76 Mb.
    Формат файлаdoc
    Имя файлаМУ_ЛР_ЛиПОАС.doc
    ТипМетодические указания
    #1057976
    страница19 из 32
    1   ...   15   16   17   18   19   20   21   22   ...   32

    2.26. Создание новых атрибутов для элементов в модели DOM


    Создание новых атрибутов отличается от создания других типов узлов, поскольку атрибуты являются не узлами, а свойствами узла элемента, и содержатся в связанной с этим элементом коллекции XmlAttributeCollection. Есть несколько способов создания атрибута и присоединения его к элементу:

    • Получите узел элемента и примените метод SetAttribute, чтобы добавить атрибут в коллекцию атрибутов этого элемента.

    • Создайте узел XmlAttribute с помощью метода CreateAttribute, получите узел элемента и примените метод SetAttributeNode, чтобы добавить узел в коллекцию атрибутов этого элемента.

    Следующий пример демонстрирует, как добавить атрибут к элементу с помощью метода SetAttribute.

    C#

    using System;

    using System.IO;

    using System.Xml;
    public class Sample

    {

    public static void Main()

    {

    var doc = new XmlDocument();

    doc.LoadXml("" +

    "" +

    "
    ");

    XmlElement root = doc.DocumentElement;
    // Add a new attribute.

    root.SetAttribute("genre", "urn:samples", "novel");
    Console.WriteLine("Display the modified XML...");

    Console.WriteLine(doc.InnerXml);

    }

    }

    Следующий пример демонстрирует, как создать новый атрибут с помощью метода CreateAttribute. Созданный атрибут он добавляет в коллекцию атрибутов элемента book с помощью метода SetAttributeNode.

    Заданы следующие XML-данные:







    Создается новый атрибут, и ему присваивается значение:

    C#

    XmlAttribute attr = doc.CreateAttribute("publisher");

    attr.Value = "WorldWide Publishing";

    Атрибут присоединяется к его элементу:

    C#

    doc.DocumentElement.SetAttributeNode(attr);

    Выходныеданные







    Также можно создать узел XmlAttribute и вызвать метод InsertBefore_и_InsertAfter'>InsertBefore или InsertAfter, чтобы поместить его в подходящее место коллекции. Если в коллекции атрибутов уже существует атрибут с таким именем, эти методы удаляют существующий узел XmlAttribute и добавляют вместо него новый узел XmlAttribute. Алгоритм выполнения здесь такой же, как у метода SetAttribute. Эти методы принимают в качестве параметра существующий узел, который будет считаться базовой точкой для методов InsertBefore и InsertAfter. Если не задан базовый узел, рядом с которым нужно вставить новый узел, метод InsertAfter по умолчанию вставляет новый узел в начало коллекции, а метод InsertBefore — в конец коллекции.

    Если вы создали для атрибутов коллекцию XmlNamedNodeMap, можете добавить именованный атрибут с помощью метода SetNamedItem.

    2.27. Атрибуты по умолчанию


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

    2.28. Дочерние узлы атрибута


    Значение узла атрибута становится его дочерними узлами. Существует два допустимых типа дочерних узлов: XmlText и XmlEntityReference. Они являются дочерними узлами в том смысле, что такие методы, как FirstChild и LastChild, обрабатывают их как дочерние узлы. Это отличие атрибута, имеющего дочерние узлы, становится важным во время удаления атрибута или его дочерних узлов.

    2.29. Проверка имен XML-элементов и атрибутов при создании новых узлов


    Модель XML DOM проверяет допустимость имен при создании новых узлов элементов или узлов атрибутов. Если имена содержат недопустимые символы, возникает исключение. Чтобы гарантировать допустимость и правильную кодировку имен, необходимо использовать класс XmlConvert для кодирования и декодирования имен на уровне приложения. Класс XmlWriter содержит методы, которые выполняют дополнительную работу, чтобы обеспечить формирование XML-документов правильного формата.

    2.30. Создание новых ссылок на сущности


    Метод EntityReference'>CreateEntityReference создает новый узел XmlEntityReference. Модель DOM определяет, было ли уже декларировано имя сущности, на которую указывает ссылка. Если было, то дочерние узлы узла XmlEntityReference копируются из узла декларации сущности. Если совпадающая декларация сущности отсутствует, пустой текстовый узел прикрепляется как единственный дочерний узел узла ссылки на сущность. Так как дочерние узлы узла XmlEntityReference являются копиями других узлов, они доступны только для чтения и не могут быть изменены.

    При копировании узлов в области в точке ссылки на сущность может быть пространство имен. Это пространство имен влияет на конфигурацию всех формируемых элементов или узлов атрибутов.

    Примечание

    Модель DOM добавляет дочерние узлы к узлу EntityReference только при вставке в документ узла EntityReference. Вновь созданные узлы EntityReference не имеют дочерних узлов.

    Хотя класс XmlDataDocument является производным от класса XmlDocument, класс XmlDataDocument не поддерживает создание ссылок на сущности. Это связано с тем, что дочерние узлы EntityReference доступны только для чтения. Дочерние узлы узла EntityReference могут принадлежать к нескольким областям. В этом случае часть строки, связанная с областью, которая содержит часть узла EntityReference, будет доступна только для чтения.
    1   ...   15   16   17   18   19   20   21   22   ...   32


    написать администратору сайта