0
나는 이것이 쉬운 작업이라고 생각했지만 토끼 구멍에서 길을 잃은 것 같습니다.클래스를 XML로 바꾼 다음 바 이어 레이로 변환하는 데 도움이 필요합니다
클래스를 XML로 변환 한 다음 바이트 배열을 WCF Restful webservice 용 HTTPWebRequest의 내용으로 보내려고합니다. 내 코드는 바이트 배열에서 XML로 클래스를 반환하지만 형식이 잘못되었습니다. XML은 다음과 같습니다
<?xml version="1.0" encoding="utf-8"?><Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><FirstName>Richard</FirstName><LastName>Cranium</LastName></Person>
나는이 여분의 선언을 제거하는 것입니다 생각하고 OmitXmlDeclaration 방법을 사용하려고 시도했지만 그것이하여 XmlTextWriter 개체 작동하지 않습니다와 나는 xmlwriterobject를 사용할 때 변환 방법을 결정할 수 없습니다 Byte 배열의 결과 여기
내 코드입니다 : 내가 올바른 여는 태그와 XML을 얻기 위해 무엇을해야Private Shared Function GenerateXMLPersonAsByte(strFirstName As String, strLastName As String) As Byte()
' This should serialize this to a byte array
Dim p As New Person()
p.FirstName = strFirstName
p.LastName = strLastName
' Want to use this with the xmlTextWriter but it does not support the property it is to be used with the XMLWriter instead
'Dim settings As XmlWriterSettings = New XmlWriterSettings()
'settings.OmitXmlDeclaration = True
'settings.ConformanceLevel = ConformanceLevel.Fragment
'settings.CloseOutput = False
' Create the XmlWriter object and write some content.
Dim mStream As New MemoryStream()
Dim ser As New XmlSerializer(GetType(Person))
Dim xmlTW As New XmlTextWriter(mStream, Encoding.UTF8)
ser.Serialize(xmlTW, p)
mStream = DirectCast(xmlTW.BaseStream, MemoryStream)
mStream.Close()
Return mStream.ToArray()
End Function
? 또는 XmlTextWriter 개체의 출력을 바이트 배열로 가져 오는 방법은 무엇입니까?
모든 질문에 대답,하지만
첫 번째 문자열로 변환하여 바이트로 변환 (죄송합니다, C#을,하지만 당신은 .NET 호출을받을) 수없는 done 불행히도 내 코드는 사람 시작 태그보다 앞에있는 XML 선언 부분을 제거하지만 사람 시작 태그 다음에 나오는 줄을 제거합니다. (xmlns : xsi = ""http://www.w3.org/2001/XMLSchema -instance ""xmlns : xsd = ""http://www.w3.org/2001/XMLSchema "")가 여전히 존재합니다. 어떻게 내가 이걸 없앨 수 있을지 생각해? –
시도해 보셨습니까? null 네임 스페이스를 설정하는 마지막 항목을보십시오. http://bytes.com/topic/net/answers/809956-how-remove-xmlns-xsd-root-tag-via-xmlserialization –
감사합니다. –