标签: xml-declaration

有效的XML文件是否需要XML声明?

我正在使用Xerces的Sax Parser解析XML文件.
是否<?xml version="1.0" encoding="UTF-8"?>需要XML声明?

xml xml-declaration

116
推荐指数
3
解决办法
15万
查看次数

含义 - <?xml version ="1.0"encoding ="utf-8"?>

我是XML的新手,我正在努力理解基础知识.我在"学习XML"中读到了以下这一行,但对我来说仍然不太清楚.有人能指出我的书或网站,清楚地解释这些基础知识吗?

学习XML:

XML声明描述了文档的一些最常见的属性,告诉XML处理器它需要一个XML解析器来解释这个文档.

这是什么意思?

我理解这个xml version部分 - doc的doc和user都应该在同一版本的XML中"讨论".但那encoding部分呢?为什么这有必要?

xml character-encoding xml-encoding xml-declaration

91
推荐指数
3
解决办法
37万
查看次数

如何使xmlserializer仅序列化普通xml?

我需要得到简单的xml,而不是<?xml version="1.0" encoding="utf-16"?>在开头和xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"第一个元素中XmlSerializer.我该怎么做?

.net c# xml-serialization xml-declaration

75
推荐指数
3
解决办法
5万
查看次数

可以在XML声明之前放置注释吗?

可以在XML文件中的XML声明之前放置注释吗?

<!--
Is this bad to do?
-->
<?xml version="1.0" encoding="utf-8"?>
<someElement />
Run Code Online (Sandbox Code Playgroud)

xml xml-declaration

28
推荐指数
3
解决办法
3936
查看次数

HTML5中的SVG - 什么时候是XML声明`<?xml version ="1.0"encoding ="UTF-8"?>`需要吗?

在HTML5中使用SVG时:SVG是否<?xml version="1.0" encoding="UTF-8"?>需要XML声明

  • 作为图像通过<img>
  • 作为CSS background-image

这与" 是否需要'xmlns'和'版本'等SVG参数 "略有关系.两个答案和MDN Namespace崩溃课程根据需要阐明名称空间问题.

但SVG 1.1不包括XML声明的必要性声明或何时可以省略?

没有声明的示例:

<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200">
  <circle id="circle--red" cx="30" cy="30" r="30" fill="#f00"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

更新2016-07-04:澄清该问题是关于XML声明.谢谢@Martin Honnen! 更新2017-10-24:更改为"UTF-8"大写和SVGO优化属性顺序.

xml html5 svg xml-declaration

18
推荐指数
2
解决办法
9129
查看次数

如何防止XDocument添加XML版本和编码信息

尽管在以下代码中使用了SaveOptions.DisableFormatting选项:

XDocument xmlDoc = XDocument.Load(FileManager.SourceFile); 
string element="campaign";
string attribute="id";

var items = from item in xmlDoc.Descendants(element)                        
            select item;

foreach (XElement itemAttribute in items)
{
    itemAttribute.SetAttributeValue(attribute, "it worked!");
    //itemElement.SetElementValue("name", "Lord of the Rings Figures");
}

xmlDoc.Save(TargetFile, SaveOptions.DisableFormatting);
Run Code Online (Sandbox Code Playgroud)

目标XML文件将其添加到它:

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

有没有办法保留原始格式,并没有添加版本和编码信息?

c# xml .net-3.5 xml-declaration

17
推荐指数
1
解决办法
9112
查看次数

保留原始doctype和lxml.etree解析xml的声明

我正在使用python的lxml,我正在尝试读取xml文档,修改并将其写回,但原始的doctype和xml声明消失了.我想知道是否有一种简单的方法可以通过lxml或其他解决方案将其放回去?

python doctype lxml xml-declaration

15
推荐指数
2
解决办法
5859
查看次数

在文档格式良好的XML中有多个XML声明吗?

在同一个文档格式良好的XML中有两个XML声明吗?

<?xml version="1.0" encoding="UTF-8"?>
<a>
 <?xml version="1.0" encoding="UTF-8"?>
 <b>
  hello
 </b>
</a>
Run Code Online (Sandbox Code Playgroud)

我相信它不是,但我找不到支持我的消息来源.

来自可扩展标记语言(XML)1.0

定义:XML文档应该以XML声明开头,该声明指定所使用的XML的版本.

那个讨厌的词"应该"就在那里.理想情况下,文档以XML声明开头.它没有说明在文档中有另一个.

文档类型声明必须出现在文档中的第一个元素之前.

这很接近,但它没有谈论XML声明本身,即使它应该在它之前.

xml xml-declaration

5
推荐指数
1
解决办法
2753
查看次数

读取XML文件的内容而不必删除XML声明

我想从文件中读取所有XML内容.下面的代码仅在<?xml version="1.0" encoding="UTF-8"?>删除XML声明()时有效.在不删除XML声明的情况下读取文件的最佳方法是什么?

XmlTextReader reader = new XmlTextReader(@"c:\my path\a.xml");
            reader.Read();
            string rs = reader.ReadOuterXml();
Run Code Online (Sandbox Code Playgroud)

在不删除XML声明的情况下,reader.ReadOuterXml()返回一个空字符串.

<?xml version="1.0" encoding="UTF-8"?>  
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
  <s:Header>
    <a:Action s:mustUnderstand="1">http://www.as.com/ver/ver.IClaimver/Car</a:Action>
    <a:MessageID>urn:uuid:b22149b6-2e70-46aa-8b01-c2841c70c1c7</a:MessageID>
    <ActivityId CorrelationId="16b385f3-34bd-45ff-ad13-8652baeaeb8a" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">04eb5b59-cd42-47c6-a946-d840a6cde42b</ActivityId>
    <a:ReplyTo>
      <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>
    </a:ReplyTo>
    <a:To s:mustUnderstand="1">http://localhost/ver.Web/ver2011.svc</a:To>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Car xmlns="http://www.as.com/ver">
      <carApplication>
        <HB_Base xsi:type="HB" xmlns="urn:core">
          <Header>
            <Advisor>
              <AdvisorLocalAuthorityCode>11</AdvisorLocalAuthorityCode>
              <AdvisorType>1</AdvisorType>
            </Advisor>
          </Header>
          <General>
            <ApplyForHB>yes</ApplyForHB>
            <ApplyForCTB>yes</ApplyForCTB>
            <ApplyForFSL>yes</ApplyForFSL>
            <ConsentSupplied>no</ConsentSupplied>
            <SupportingDocumentsSupplied>no</SupportingDocumentsSupplied>
          </General>
        </HB_Base>
      </carApplication>
    </Car>
  </s:Body>
</s:Envelope>
Run Code Online (Sandbox Code Playgroud)

更新

我知道其他使用NON-xml阅读器的方法(例如使用File.ReadAllText()).但我需要知道一种使用xml方法的方法.

c# xml xml-declaration

4
推荐指数
1
解决办法
9203
查看次数

以编程方式将 XML 声明添加到 XML 文档

我想将声明添加到用 Javascript 生成的 XML 文档中,但我没有找到足够的文档。

假设我想以编程方式(使用 Javascript)创建以下 XML 文档:

<?xml version="1.0" encoding="UTF-8"?>
<people>
  <person first-name="eric" last-name="jung" />
</people>
Run Code Online (Sandbox Code Playgroud)

这是我所做的代码:

let doc = document.implementation.createDocument("", "", null);
let peopleElem = doc.createElement("people");

let personElem = doc.createElement("person");
personElem.setAttribute("first-name", "eric");
personElem.setAttribute("last-name", "jung");

peopleElem.appendChild(personElem);
doc.appendChild(peopleElem);

let docStr = new XMLSerializer().serializeToString(doc.documentElement);
console.log(docStr);

// produces:
// <people>
//   <person first-name="eric" last-name="jung" />
// </people>

// and not:
// <?xml version="1.0" encoding="UTF-8"?>
// <people>
//   <person first-name="eric" last-name="jung" />
// </people>
Run Code Online (Sandbox Code Playgroud)

我应该如何获取<?xml version="1.0" encoding="UTF-8"?>生成的 XML 中的 ? …

javascript xml xml-declaration

4
推荐指数
1
解决办法
1779
查看次数