나는 XmlSerializer.Serialize을 사용하고 있으며 줄 바꿈과 불필요한 공백이 생깁니다. 어떻게 피하는가?불필요한 공백과 줄 바꿈없이 XML을 직렬화하는 방법은 무엇입니까? (.NET)
답변
XmlWriter
을 허용하는 오버로드를 사용하고 XmlWriter
을 XmlWriterSettings
인스턴스로 구성 할 수 있습니까?
XmlWriterSettings
을 사용하면 줄 바꿈 및 들여 쓰기의 적용을 제어 할 수 있습니다.
void Serialize(Object o)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = false;
settings.NewLineHandling = NewLineHandling.None;
//settings.OtherProperties = values;
using (XmlWriter writer = XmlWriter.Create(CreateStream(), settings))
{
_serializer.Serialize(writer, o);
}
}
고마워요. –
저는이 같은 매개 변수를 주위로 전환해야했습니다 :'_serializer.Serialize (writer, o);'. 좋은 해결책, 고마워! –
기본적으로 서식이 없습니다. 난 그냥 다음과 같은 노력하고 어떤 형식 없어 : 샘플 실행에
using (var stream = new MemoryStream())
{
System.Text.Encoding encoding;
using (var writer = XmlWriter.Create(stream))
{
if (writer == null)
{
throw new InvalidOperationException("writer is null");
}
encoding = writer.Settings.Encoding;
var ser = new XmlSerializer(obj.GetType());
ser.Serialize(writer, obj);
}
stream.Position = 0;
using (var reader = new StreamReader(stream, encoding, true))
{
return reader.ReadToEnd();
}
}
를, 다음 XML을 반환
<?xml version="1.0" encoding="utf-8"?><obj xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><childOne /><childTwo /><text>text1</text><text>text2</text></obj>
어쩌면 당신을 더 좋아할 것입니다 =) –
이러한 불일치는 Microsoft에보고해야합니다. 메서드는 다른 방식으로 동작 할 수 없습니다. 그것은 CultureInfo에 의존적입니까? 또는 .NET 버전/서비스 팩입니까? 나는 아직 모른다. –
기회가 있으면 게시 한 코드를 실행하십시오. .NET 3.5 SP1을 실행 중입니다. 진정한 차이점이 무엇인지 살펴 보겠습니다. –
직렬화 클래스 XMLELEMENT처럼 (XML 타입의 구성원을 포함하는 경우도 확인하시기 바랍니다). XsD2Code 도구를 사용하여 XSD에서 클래스를 생성하고 (매우 특별한 경우) XmlElement 유형의 멤버를 만들었습니다. 직렬화 중에이 구성원은 고유 한 형식을 취합니다 (정확한 일치가 필요함). XmlSerializer 들여 쓰기를 설정 (또는 해제) 했더라도 XmlElement 멤버에는 영향을 미치지 않습니다.
- 1. Java를 사용하여 XML을 직렬화하는 최상의 방법은 무엇입니까?
- 2. xml을 객체 배열에 비 직렬화하는 방법은 무엇입니까?
- 3. 줄 바꿈없이 참조 스타일
- 4. 줄 바꿈없이 MATLAB에서 정보 표시
- 5. .NET 컨트롤을 CODE로 직렬화하는 방법은 무엇입니까?
- 6. 깨끗한 HTML 공백과 새 줄
- 7. 레일스 - 공백과 줄 바꿈에서 XML 가져 오기
- 8. 어떻게이 같은 XML을 직렬화하는 XmlArrayItem
- 9. XML을 비 직렬화하는 jQuery 플러그인?
- 10. 그래프를 직렬화하는 방법은 무엇입니까?
- 11. 파이썬에서 함수에서 줄 바꿈없이 인쇄가 작동하지 않습니다.
- 12. c 줄 바꿈없이 stdout을 인쇄 하시겠습니까?
- 13. Excel에서 줄 바꿈없이 텍스트 파일로 내보내기
- 14. lxml - 줄 바꿈없이 xml 구문 분석
- 15. 무엇이든 상관없이 줄 바꿈없이 왼쪽으로 강제로 플로트합니다.
- 16. 빔 : 줄 바꿈없이 텍스트 줄 바꿈 (예 : "gq")?
- 17. C에서 공백과 탭을 바꾸는 방법은 무엇입니까?
- 18. NSRegularExpression에서 공백과 공백을 동시에 포함하는 방법은 무엇입니까?
- 19. Ruby/Rails에서 Net :: IMAP 객체를 캐시/직렬화하는 방법은 무엇입니까?
- 20. 기존 파일에 직렬화하는 방법은 무엇입니까?
- 21. 그래프 구조를 직렬화하는 방법은 무엇입니까?
- 22. ConcurrentDictionary에 액세스하고이를 직렬화하는 방법은 무엇입니까?
- 23. JavaScript로 파일을 직렬화하는 방법은 무엇입니까?
- 24. 자바에서 목록을 직렬화하는 방법은 무엇입니까?
- 25. Django에서 RawQuerySet을 직렬화하는 방법은 무엇입니까?
- 26. WCF 서비스의 전선을 통해 XML을 직렬화하는 방법보기
- 27. C#에서 객체에 XMLDocument를 비 직렬화하는 방법은 무엇입니까?
- 28. 레일 : "버튼 _to"버튼을 줄 바꿈없이 sameline에 표시하는 방법?
- 29. 알 수없는 형식을 XML 직렬화하는 방법은 무엇입니까?
- 30. C#에서 줄 바꿈없이 큰 텍스트 파일에서 문자열을 검색하는 방법은 무엇입니까?
Old,하지만 차이점은 XmlWriter 또는 TextWriter를 사용하고 있는지 여부입니다. 제 경험상, XmlWriter는 기본적으로 서식을 지정하지 않습니다. 이것은 포맷팅이 중요하지 않은 문서를 작성하는 반면, 텍스트 작성자는 직선 텍스트를 쓰는 반면, 의미가 있습니다. – Timothy