Я хочу, чтобы сформировать XML в следующем формате, используя класс XmlWriter в C# -:Как создать следующий Xml с помощью класса XmlWriter в C#?
<?xml version="1.0" ?>
<root>
<data>
<entry Attrib1="" Attrib2="91.3467" Attrib3="95.3052" Attrib4="6.4722" />
<entry Attrib1="" Attrib2="91.3467" Attrib3="95.3052" Attrib4="6.4722" />
</data>
</root>
Я новичок в классе XmlWriter и C# в целом, и я пытался писать код для создания файла с выше формата, но эта попытка оказалась неудачной
var xmlWriter = XmlWriter.Create(filename);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("data");
xmlWriter.WriteStartElement("entry");
xmlWriter.WriteAttributeString("attrib1", "value1");
xmlWriter.WriteAttributeString("attrib2", "value2");
xmlWriter.Close();
также, название атрибутов может включена недопустимые символы XML, и именно поэтому я прочитал на XMLWriter, потому что кажется, чтобы удалить эти недопустимые символы из имен атрибутов Например, имя типа «это атрибут 1» должно быть сведено к чему-то вроде «this_is_attribute_1» при написании в результирующий XML, как я могу начать создавать такой XML с помощью XmlWriter. Короче строка результирующего XML является чем-то вроде этого
<entry P_B_Pe="" P_E_Pe="91.3467" Custom_Price="95.3052" C_Yield="6.4722" Average_Life="" />
эй спасибо за решение например, просто хотел знать, что в .NET нет ничего, что преобразует строку атрибута в допустимое имя атрибута XML, если у меня есть строка, такая как Port. его действительным атрибутом XML должен быть Port_Entry_is. Именно здесь я столкнулся с большой путаницей, я также посмотрел на метод XmlConvert.Encode, но это также не служит мне для этой цели. – AnkitSablok
@AnkitSablok: это правильно. .NET не поддерживает специальную кодировку имен элементов и атрибутов. 'XmlConvert.Encode' - это то, что используется внутри, чтобы кодировать необработанные строковые данные, сбрасываемые в содержимое элемента, а не их имена или атрибуты. Он также может использоваться вызывающими программами, если они генерируют XML вручную и добавляют его с помощью 'XmlWriter.WriteRaw'. Вы можете сделать что-то подобное, но даже «XmlConvert.Encode» не будет работать для имен элементов. – James
Прохладный, это то, что я искал, поэтому мы можем с уверенностью заключить, что формат, в котором требуются имена атрибутов, полностью зависит от ситуации/контекста, в котором генерируется XML? – AnkitSablok