suds 라이브러리를 사용하여 Python 2.6에서 SOAP 웹 서비스를 구현하려고합니다. 그게 잘 작동하지만, 출력을 구문 분석하려고 할 때 문제가 생겼습니다. lxml.lxml로 파싱하기 전에 suds 출력에서 XML 선언을 제거해야합니까?
배트는 SOAP 서비스의 응답과 suds.sax.text.Text
개체를 반환합니다. suds.sax.text.Text
클래스는 파이썬 내장 된 Unicode class의 하위 클래스입니다. (때문에 XML 선언이 맞다면, 내용이 UTF-8 인코딩 때문에, incongrous입니다
u'<?xml version="1.0" encoding="utf-8" ?><root><lotsofelements \></root>'
, 따라서 하지 파이썬 유니 코드 개체 : 본질적으로,이 파이썬 문을 비교할 것 UCS4와 같은 내부 인코딩에 저장됩니다. 그것으로 해석해야하는 코드 전환에 대한 명확한 답이 없기 때문에
LXML이, as documented 구문 분석을 거부합니다.
- 벗겨
<?xml>
선언, 인코딩을 포함 : 제가보기에는이 바인드 중 두 가지 방법이있다.
- 지정된 인코딩을 사용하여 Suds의 출력을 bytestring으로 변환하십시오. 현재
, 나는이 웹 서비스에서 수신하고있어 데이터가 ASCII 범위 내에서, 그래서 어느 쪽이든은 작동하지만 모두가 나에게 추한 해킹처럼 매우 많이 느낀다, 나는 아주 확실하지 않다 어떤 것 더 넓은 범위의 유니 코드 문자가 필요한 데이터를 받기 시작하면 어떻게됩니까?
좋은 아이디어가 있습니까? 나는이 위치의 첫 번째 사람이라고 상상할 수 없다 ...
단순히 인코딩 부분을 제거하는 것이 합리적인 방법이라고 생각합니다. 감사합니다. 필자는이 끔찍한 사건에 대한 픽스가 메인 라이브러리에 포함될만한 가치가 있는지 알아보기 위해 비눗물 녀석들을 치려고합니다. – mikl