Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
При загрузке и сохранении XmlDocument между сохраненным и исходным документами возможны следующие различия:
Если свойство PreserveWhitespace имеет значение
trueперед вызовом метода Save, то пробелы в документе при выводе сохраняются. Если свойство имеет значениеfalse, то XmlDocument автоматически вставляет отступы в выходные данные.Все пробелы между атрибутами сокращаются до одного символа пробела.
Пробелы между элементами изменяются. Значащие пробелы сохраняются, а незначащие пробелы не сохраняются. Но при сохранении документа по умолчанию используется режим XmlTextWriterотступов, чтобы аккуратно вывести данные на печать и сделать их более удобочитаемыми.
Символ кавычки вокруг значений атрибута по умолчанию заменяется символом двойной кавычки. Выбрать в качестве символа кавычки двойную кавычку или одинарную кавычку можно с помощью свойства QuoteChar класса XmlTextWriter.
По умолчанию числовые символьные сущности, например
{, раскрываются.Маркер порядка байт во входном документе не сохраняется. UCS-2 сохраняется как UTF-8, если явно не создана XML-декларация, указывающая другую кодировку.
Если требуется записать XmlDocument в файл или поток, то записываемые выходные данные не будут отличаться от содержимого документа. То есть, XmlDeclaration записывается только если в документе содержится XmlDeclaration, а кодировка, используемая при записи документа, совпадает с кодировкой, указанной в узле декларации.
Запись XmlDeclaration
XML-декларацию создают члены XmlDocument и XmlDeclaration из OuterXml, InnerXml, а также методы XmlDocument и Save из WriteContentTo.
Для свойств XmlDocument методов OuterXml, InnerXml, а также методов Save, WriteTo и WriteContentTo кодировка, записываемая в XML-декларацию, берется из узла XmlDeclaration. Если узла нет XmlDeclaration , XmlDeclaration не записывается. Если в XmlDeclaration узле отсутствует кодировка, кодировка не записывается в объявлении XML.
Методы XmlDocument.Save и XmlDocument.Save всегда записывают XmlDeclaration. Они получают кодировку из записывающего объекта, в который производится запись. То есть, кодовое значение модуля записи переопределяет кодировку в документе и в XmlDeclaration. Например, приведенный ниже код не записывает кодировку в XML-декларацию, находящуюся в выходном файле out.xml.
Dim doc As New XmlDocument()
Dim tw As XmlTextWriter = New XmlTextWriter("out.xml", Nothing)
doc.Load("text.xml")
doc.Save(tw)
XmlDocument doc = new XmlDocument();
XmlTextWriter tw = new XmlTextWriter("out.xml", null);
doc.Load("text.xml");
doc.Save(tw);
Для метода Save XML-декларация записывается с помощью метода WriteStartDocument класса XmlWriter. Поэтому при перезаписи метода WriteStartDocument изменяется способ записи начала документа.
XmlDeclaration Для членов OuterXml, WriteTo, и InnerXml, если свойство Encoding не задано, кодировка не записывается. В противном случае кодировка, записанная в объявлении XML, совпадает с кодировкой, найденной в свойстве Encoding.
Запись содержимого документа с помощью свойства OuterXml
Свойство OuterXml является расширением Microsoft для стандартов консорциума W3C, связанных с объектной моделью документа (DOM) XML. Свойство OuterXml позволяет получить разметку как полного XML-документа, так и единичного узла вместе с его дочерними узлами. Элемент OuterXml возвращает разметку, представляющую заданный узел и все его дочерние узлы.
В приведенном ниже образце кода показано сохранение документа целиком в виде строки.
Dim mydoc As New XmlDocument()
' Perform application needs here, like mydoc.Load("myfile");
' Now save the entire document to a string variable called "xml".
Dim xml As String = mydoc.OuterXml
XmlDocument mydoc = new XmlDocument();
// Perform application needs here, like mydoc.Load("myfile");
// Now save the entire document to a string variable called "xml".
string xml = mydoc.OuterXml;
В следующем образце кода показано, как сохранить только отдельный элемент документа.
' For the content of the Document Element only.
Dim xml As String = mydoc.DocumentElement.OuterXml
// For the content of the Document Element only.
string xml = mydoc.DocumentElement.OuterXml;
Однако если требуется содержимое дочерних узлов, можно использовать свойство InnerText.