Eri*_*ick 16 xml asp.net linq-to-xml c#-3.0
我尝试使用domainpeople.com API,我需要使用XML.
目前我有一个错误说"找不到apiProtocol"我想那时我的Xml文档格式不正确.
发送的当前xml是:
<apiProtocol version="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNameSpaceSchemaLocation="checkrequest.xsd">
<checkRequest user="ifuzion" password="fish4gold121" reference="123456789">
<domain name="google.com" />
</checkRequest>
</apiProtocol>
Run Code Online (Sandbox Code Playgroud)
显然这<?xml?>部分不会打印出来.
我的代码基本上类似于:
XDocument xDocument = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"),
new XElement("Books"));
Run Code Online (Sandbox Code Playgroud)
(我删除了我的代码以获得简单的问题,但结构完全相似).
XDocument没有打印出<?xml?>部件的原因是什么?似乎使用XmlDocument它可以工作但不能与XDocument ...任何提示?
Fre*_*örk 10
你怎么保存它?如果我执行以下操作,xml声明应该出现:
XDocument xDocument = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"),
new XElement("Books"));
xDocument.Save(@"c:\temp\file.xml");
Run Code Online (Sandbox Code Playgroud)
输出如下所示:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Books />
Run Code Online (Sandbox Code Playgroud)
但是,如果我改为传递XmlWriter实例,似乎该XmlWriter的设置会覆盖XDocument中声明的内容:
XDocument xDocument = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"),
new XElement("Books"));
StringBuilder sb = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(sb))
{
xDocument.Save(writer);
}
Console.WriteLine(sb.ToString());
Run Code Online (Sandbox Code Playgroud)
输出如下所示:
<?xml version="1.0" encoding="utf-16" standalone="yes"?><Books />
Run Code Online (Sandbox Code Playgroud)
请注意编码如何更改为"utf-16"并且缩进已更改.如果添加指示编码的XmlWriterSettings实例(以及您要控制的任何其他设置),则会获得更好的结果.以下代码符合您的期望:
XDocument xDocument = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"),
new XElement("Books"));
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.UTF8;
settings.ConformanceLevel = ConformanceLevel.Document;
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(@"c:\temp\xdocument.xml", settings))
{
xDocument.Save(writer);
}
Run Code Online (Sandbox Code Playgroud)
输出:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Books />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11299 次 |
| 最近记录: |