发生确定性事件时,我正在创建XML文件。
我已经尝试了某些人在另一个类似问题中回答的内容,但是它似乎没有用,因为它仍然缺少声明。
此XML文件包含以下元素:
Data
User
Number
Age
Gender
Nickname
Ability
Result
DateAndTime
但是,我需要显示XML声明。像这样
?xml version =“ 1.0” encoding =“ UTF-8”?>
此声明未显示在文件中。
我正在使用以下代码:
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;
nombre = Code + file_count;
XmlWriter writer = XmlWriter.Create(Data._XmlLocation + Folder + nombre + ".xml", settings);
writer.Close();
XmlTextWriter xw = new XmlTextWriter(Data._XmlLocation + Folder + nombre + ".xml", Encoding.UTF8);
xw.Formatting = Formatting.Indented;
string[] elements = { "Data", "User", "Number", "Age", "Gender", "Nickname", "Ability", "Result", "DateAndTime", };
string[] eleValues = { "", Datos, Usuario, "", "", Number, "25", Gender, Date + " " + Hour };
for (int i = 0; i < elements.Length; i++)
{
string en = elements[i];
string ev = eleValues[i];
xw.WriteStartElement(en); if (ev != "")
{
xw.WriteString(ev); xw.WriteEndElement();
}
}
for (int i = 0; i < elements.Length; i++)
{
if (eleValues[i] == "") xw.WriteEndElement();
}
xw.Close();
此代码生成如下文件:
<Data>
<User/>
<Number />
<Age> 25 </Age>
<Gender>
<Nickname>
<Ability>Continuity Test</Ability>
<Result>FAILED</Result>
<DateAndTime> </DateAndTime>
</Nickname>
</Gender>
</Data>
我为之工作:
<?xml version="1.0" encoding="utf-8"?>
<Data>
<Name>Eduardo</Name>
<Number>24562</Number>
<Gender>
<Nickname>
<Key>PASS</Key>
<Ability>Continuity Test</Ability>
<Result>PASSED</Result>
<DateAndTime>2019/07/17 23:09:14:860</DateAndTime>
</Nickname>
</Gender>
</TestData>
我需要显示此声明。谢谢!
答案 0 :(得分:0)
您将要摆脱声明的多余XmlTextWriter
,并在将其标记为文档的设置中添加一个ConformanceLevel。
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;
settings.ConformanceLevel = ConformanceLevel.Document; // This is the default value, so it's not strictly necessary to set for your purposes.
XmlWriter xw = XmlWriter.Create(path, settings);
其余的代码很好(一旦您删除了XmlTextWriter的声明)