Używam XmlWriter.Create()
, aby uzyskać instancję pisarza, a następnie napisać XML, ale wynik ma <?xml version="1.0" encoding="utf-16" ?>
, jak mogę powiedzieć, że mój xml nie tworzy go?jak utworzyć xml za pomocą xml writer bez elementu deklaracji
Odpowiedz
Użyj XmlWriterSettings.OmitXmlDeclaration
.
Nie zapomnij ustawić XmlWriterSettings.ConformanceLevel
na ConformanceLevel.Fragment
.
Można podklasy XmlTextWriter
i zastąpić metodę WriteStartDocument()
robić nic:
public class XmlFragmentWriter : XmlTextWriter
{
// Add whichever constructor(s) you need, e.g.:
public XmlFragmentWriter(Stream stream, Encoding encoding) : base(stream, encoding)
{
}
public override void WriteStartDocument()
{
// Do nothing (omit the declaration)
}
}
Zastosowanie:
var stream = new MemoryStream();
var writer = new XmlFragmentWriter(stream, Encoding.UTF8);
// Use the writer ...
referencyjny: Ten blog post Scott Hanselman.
dzięki, w jakikolwiek lepszy sposób? Nie chcę podklasy tylko w celu usunięcia deklaracji. – ninithepug
@ninithepug: Nie z tego, co wiem, przepraszam. Możesz go zawinąć w statyczną metodę gdzieś, jeśli używasz jej często. To powinno pomóc w utrzymaniu czystości. – Cameron
dziękuje człowiekowi, doceniam to: – ninithepug
można użyć XmlWriter.Create()
z:
new XmlWriterSettings { OmitXmlDeclaration = true, ConformanceLevel = ConformanceLevel.Fragment }
public static string FormatXml(string xml)
{
if (string.IsNullOrEmpty(xml))
return string.Empty;
try
{
XmlDocument document = new XmlDocument();
document.LoadXml(xml);
using (MemoryStream memoryStream = new MemoryStream())
using (XmlWriter writer = XmlWriter.Create(memoryStream, new XmlWriterSettings { Encoding = Encoding.Unicode, OmitXmlDeclaration = true, ConformanceLevel = ConformanceLevel.Fragment, Indent = true, NewLineOnAttributes = false }))
{
document.WriteContentTo(writer);
writer.Flush();
memoryStream.Flush();
memoryStream.Position = 0;
using (StreamReader streamReader = new StreamReader(memoryStream))
{
return streamReader.ReadToEnd();
}
}
}
catch (XmlException ex)
{
return "Unformatted Xml version." + Environment.NewLine + ex.Message;
}
catch (Exception ex)
{
return "Unformatted Xml version." + Environment.NewLine + ex.Message;
}
}
- 1. Znacznik deklaracji XML za pomocą SimpleXML
- 2. Jak utworzyć atrybut XML (zamiast elementu) za pomocą FSharp?
- 3. Jak utworzyć dokument XML za pomocą XmlDocument?
- 4. C# XML - Multiple deklaracja przestrzeni nazw z XML Writer
- 5. php simplexml bez tagu deklaracji xml
- 6. Jak napisać deklarację XML za pomocą xml.etree.ElementTree
- 7. .NET: Jak sprawdzić plik XML za pomocą DTD bez deklaracji DOCTYPE
- 8. android - Jak utworzyć identyfikator xml?
- 9. Jak uzyskać nazwę elementu głównego dokumentu XML za pomocą Nokogiri?
- 10. Jak zmienić nazwę katalogu głównego XML za pomocą Serializacji XML?
- 11. Kodowanie w python deklaracji XML
- 12. Jak utworzyć węzeł CDATA z xml za pomocą go?
- 13. Parsowanie strumienia XML bez elementu głównego
- 14. Jak zaktualizować plik XML za pomocą lxml
- 15. Konwersja elementy XML do atrybutów XML za pomocą XSLT
- 16. Sprawdzanie poprawności schematu XML: Nie można odnaleźć deklaracji elementu
- 17. Jak usunąć zduplikowane atrybuty z kodu XML za pomocą C#
- 18. Czytanie wewnętrznego tekstu elementu XML za pomocą Go
- 19. analizowania XML za pomocą Xelement
- 20. Jak utworzyć instancję pustego elementu za pomocą JAXB
- 21. Android - Sprawdź ikonę za pomocą rysowania xml
- 22. Jak parsować XML za pomocą jsoup
- 23. Jak odczytać plik XML za pomocą Java?
- 24. Jak zmodyfikować plik XML za pomocą PHP
- 25. Jak skonfigurować Spring Social za pomocą XML
- 26. Jak dodać atrybut XML za pomocą DataContract
- 27. Jak mogę przetestować XML za pomocą jQuery
- 28. Wyodrębnianie element XML z pliku XML za pomocą XPath
- 29. Deserializacja pliku xml za pomocą XmlArray?
- 30. Parsowanie XML XML za pomocą DOM, aby uzyskać wartość węzła,
Od docs Ci link do niego: 'Deklaracja XML jest zawsze napisany jeśli ConformanceLevel jest ustawiony na dokument, nawet jeśli OmitXmlDeclaration jest ustawiony na TRUE – Cameron
@Cameron, prawdziwy , i? –
Czy nie będzie ustawiona na Dokumentowanie przez większość czasu? – Cameron