org.xml.sax.SAXParseException: treść nie jest dozwolona w prologu


161

Mam klienta usługi sieciowej opartej na Javie, podłączonego do usługi sieciowej Java (zaimplementowanej w ramach Axis1).

Otrzymuję następujący wyjątek w moim pliku dziennika:

Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    at org.apache.ws.axis.security.WSDoAllReceiver.invoke(WSDoAllReceiver.java:114)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:198)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)

11
Pomogłoby, gdybyś pokazał nam XML, który próbujesz przeanalizować. (Spodziewam się, że wystarczy kilka pierwszych wersów.)
Stephen C

Dzięki Stephen, próbuję pobrać żądanie XML ze struktury AXIS i wkleić je tutaj. Więc ogólne zrozumienie powyższego błędu jest takie, że XML nie jest dobrze sformułowany.
ag112

Miałem ten problem, ponieważ próbowałem przekształcić nazwę ciągu pliku xml zamiast pliku xml jako ciąg! : P
Gaʀʀʏ

Odpowiedzi:


242

Jest to często spowodowane spacją przed deklaracją XML, ale może to być dowolny tekst , na przykład myślnik lub dowolny znak. Mówię, że często jest to spowodowane białymi znakami, ponieważ ludzie zakładają, że białe znaki są zawsze ignorowane, ale tak nie jest w tym przypadku.


Inną rzeczą, która często się zdarza, jest BOM UTF-8 (znak kolejności bajtów), który jest dozwolony, zanim deklaracja XML może być traktowana jako biała spacja, jeśli dokument jest przekazywany jako strumień znaków do parsera XML, a nie jako strumień bajtów .

To samo może się zdarzyć, jeśli pliki schematu (.xsd) są używane do sprawdzania poprawności pliku xml, a jeden z plików schematu ma BOM UTF-8 .


17
Dla wszystkich takich jak ja, którzy mają problem ze zrozumieniem, co zrobić z Johnem Humphreysem - sugestia w00te: zmień Document document = documentBuilder.parse(new InputSource(new StringReader(xml)))naDocument document = documentBuilder.parse(new InputSource(new ByteArrayInputStream(xml.getBytes("UTF-8"))))
RealMan

32

Właściwie oprócz Poczty Jurija Zubarewa

Kiedy przekazujesz nieistniejący plik xml do parsera. Na przykład zdasz

new File("C:/temp/abc")

gdy w systemie plików istnieje tylko plik C: /temp/abc.xml

W obu przypadkach

builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
document = builder.parse(new File("C:/temp/abc"));

lub

DOMParser parser = new DOMParser();
parser.parse("file:C:/temp/abc");

Wszystkie podają ten sam komunikat o błędzie.

Bardzo rozczarowujący błąd, ponieważ następujący ślad

javax.servlet.ServletException
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
...
Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
... 40 more

nie mówi nic o tym, że „nazwa pliku jest nieprawidłowa” lub „taki plik nie istnieje”. W moim przypadku miałem absolutnie poprawny plik xml i musiałem spędzić 2 dni, aby określić rzeczywisty problem.


To samo z próbą przeanalizowania katalogu zamiast nazwy pliku, FWIW.
rogerdpack

... @Egor dlatego wszyscy nienawidzą XML. Utrata 2 dni pracy z powodu tak głupiej porażki ...
Gewure,

Całkowicie się zgadzam @Gewure :) To był jakiś starożytny post z 2012 roku i nawet o nim zapomniałem, ale prawda
Egor

1
Dzieje się tak również, gdy masz poprawną ścieżkę, ale ze specjalnymi symbolami, takimi jak: C: \ # MyFolder \ My.XML Plik istnieje, ale "#" powoduje problem z parserem XML ... samą Javą, a także M $ Windows, nie ma problemu z nazwą tego folderu ... Bardzo złe zachowanie komunikatu o wyjątku ...
Alex

26

Spróbuj dodać spację między encoding="UTF-8"łańcuchem w prologu a zakończeniem ?>. W XML prolog wyznacza ten element rozdzielany nawiasami kwadratowymi znak zapytania na początku dokumentu (podczas gdy prolog znacznika w stackoverflow odnosi się do języka programowania).

Dodano: Czy ta kreska na początku prologu jest częścią dokumentu? To byłby tam błąd, mając dane przed prologu, -<?xml version="1.0" encoding="UTF-8"?>.


1
+1. Odkryłem, że niektóre parsery XML odrzucają ten wyjątek nawet wtedy, gdy prolog XML zawiera spacje - więc myślę, że zdecydowanie warto sprawdzić, czy nic nie poprzedza <?xml ver...bitu.

11

Miałem ten sam problem (i rozwiązałem go) podczas próby przeanalizowania dokumentu XML za pomocą freemarkera.

Nie miałem spacji przed nagłówkiem pliku XML.

Problem występuje wtedy i tylko wtedy, gdy kodowanie pliku i atrybut kodowania XML są różne. (np. plik UTF-8 z atrybutem UTF-16 w nagłówku).

Miałem więc dwa sposoby rozwiązania problemu:

  1. zmiana kodowania samego pliku
  2. zmiana nagłówka UTF-16 na UTF-8

1
Myślę, że ogólnie każdy przypadek, w którym parser otrzymuje sprzeczne informacje o kodowaniu znaków, może powodować ten problem.
Raedwald,

9

Oznacza to, że XML jest źle sformułowany lub treść odpowiedzi wcale nie jest dokumentem XML.


Sprawdziłem i wygląda na to, że XML jest dobrze sformułowany. Oto migawka: - <? Xml version = "1.0" encoding = "UTF-8"?> <Soapenv: Envelope xmlns: soapenv = " schemas.xmlsoap.org/soap/envelope " xmlns: xsd = " w3.org/ 2001 / XMLSchema "xmlns: xsi =" w3.org/2001/XMLSchema-instance "> <soapenv: Header> <wsse: Security xmlns: wsse =" docs.oasis-open.org/wss/2004/01/… " soapenv: mustUnderstand = "1"> .... </ wsse: Security> </ soapenv: Header> <soapenv: Body> .XX .. </ soapenv: Body> </ soapenv: Envelope>
ag112

1
Tak, jeśli z przodu znajduje się myślnik, spowodowałoby to uszkodzenie XML.
Yuriy Zubarev

7

Właśnie spędziłem 4 godziny na szukaniu podobnego problemu w WSDL. Okazuje się, że WSDL używa XSD, który importuje inną przestrzeń nazw XSD. Ten zaimportowany plik XSD zawierał następujące elementy:

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.xyz.com/Services/CommonTypes" elementFormDefault="qualified"
    xmlns="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:CommonTypes="http://www.xyz.com/Services/CommonTypes">

 <include schemaLocation=""></include>  
    <complexType name="RequestType">
        <....

Zwróć uwagę na pusty includeelement! To było źródło moich nieszczęść. Myślę, że jest to odmiana pliku Egora, którego nie znaleziono powyżej.

+1 do niezadowalającego zgłaszania błędów.


4

W moim przypadku usunięcie atrybutu „encoding =„ UTF-8 ”” w ogóle zadziałało.

Wygląda na to, że występuje problem z kodowaniem zestawu znaków, być może dlatego, że plik w rzeczywistości nie jest w formacie UTF-8.


4

Moja odpowiedź prawdopodobnie by ci nie pomogła, ale ogólnie pomaga w tym problemie.

Kiedy widzisz tego rodzaju wyjątek, powinieneś spróbować otworzyć plik xml w dowolnym edytorze szesnastkowym, a czasami możesz zobaczyć dodatkowe bajty na początku pliku, którego edytor tekstu nie wyświetla.

Usuń je, a plik XML zostanie przeanalizowany.


4

Czasami jest to kod, a nie XML

Poniższy kod,

Document doc = dBuilder.parse(new InputSource(new StringReader("file.xml")));

spowoduje również ten błąd,

[Błąd krytyczny]: 1: 1: Treść nie jest dozwolona w prolog.org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Treść nie jest dozwolona w prologu.

ponieważ próbuje przeanalizować literał ciągu "file.xml"(nie zawartość file.xmlpliku) i kończy się niepowodzeniem, ponieważ "file.xml"jako ciąg nie jest poprawnie sformułowanym XML.

Poprawka: Usuń StringReader():

Document doc = dBuilder.parse(new InputSource("file.xml"));

Podobnie, problemy z brudnym buforem mogą pozostawić resztkowe śmieci przed właściwym XML. Jeśli dokładnie sprawdziłeś swój XML i nadal otrzymujesz ten błąd, zapisz dokładną zawartość przekazywaną do parsera; czasami to, co jest (próbowano) analizować, jest zaskakujące.


1
To rozwiązanie poprowadziło właściwą ścieżkę, ponieważ zapomniałem dodać applicaionContext.xmlścieżkę w kodzie i nie sprawdzałem kodu szukałem błędu tylko w pliku XML
Mrinmoy

3

Najpierw wyczyść projekt, a następnie przebuduj projekt. Miałem również do czynienia z tym samym problemem. Po tym wszystko poszło dobrze.


2

Jeśli wszystko inne zawiedzie, otwórz plik w formacie binarnym, aby upewnić się, że nie ma zabawnych znaków [3 niedrukowalne znaki na początku pliku, które identyfikują plik jako utf-8] na początku pliku. Zrobiliśmy to i znaleźliśmy. więc przekonwertowaliśmy plik z utf-8 na ascii i zadziałało.


2

W przypadku tych samych problemów usunąłem następujący wiersz,

  File file = new File("c:\\file.xml");
  InputStream inputStream= new FileInputStream(file);
  Reader reader = new InputStreamReader(inputStream,"UTF-8");
  InputSource is = new InputSource(reader);
  is.setEncoding("UTF-8");

Działa dobrze. Nie jestem pewien, dlaczego ten UTF-8 stwarza problem. Żeby mnie szokować, działa dobrze również w przypadku UTF-8.

Używam 32-bitowego systemu Windows-7 i Netbeans IDE z Javą * jdk1.6.0_13 *. Nie mam pojęcia, jak to działa.


2

Jak już wskazał Mike Sokolov, jedną z możliwych przyczyn jest obecność niektórych znaków (np. Białych znaków) przed tagiem.

Jeśli wejściowy kod XML jest odczytywany jako ciąg znaków (w przeciwieństwie do tablicy bajtów), możesz użyć zastąpienia ciągu wejściowego poniższym kodem, aby upewnić się, że wszystkie „niepotrzebne” znaki przed tagiem xml zostaną usunięte.

inputXML=inputXML.substring(inputXML.indexOf("<?xml"));

Musisz się jednak upewnić, że wejściowy xml zaczyna się od tagu xml.


2

W moim przypadku plik web.xml w mojej aplikacji ma dodatkowe miejsce, nawet po usunięciu nie działał, musiałem cofnąć zmiany i jego poprawki i tak, bawiłem się logowaniem.properties i web.xml w moim tomcat, ale nawet po przywróceniu błąd nadal się wyświetlał, więc naprawiło to)).

dodatkowa przestrzeń

Aby być konkretnym, próbowałem dodać org.apache.catalina.filters.ExpiresFilter.level = FINE overflow coś o logowaniu.properties


1

Postępowałem zgodnie z instrukcjami tutaj i otrzymałem ten sam błąd.

Próbowałem kilku rzeczy, aby go rozwiązać (np. Zmiana kodowania, wpisanie pliku XML zamiast kopiowania i wklejania itp.) W Notatniku i Notatniku XML, ale nic nie działało.

Problem został rozwiązany, gdy edytowałem i zapisałem mój plik XML w Notepad ++ (kodowanie -> utf-8 bez BOM)


1

Dla wszystkich, którzy otrzymują ten błąd: OSTRZEŻENIE: Catalina.start using conf / server.xml: Treść nie jest dozwolona w prologu.

Niezbyt pouczające ... ale to, co to właściwie oznacza, to fakt, że w twoim pliku conf / server.xml są śmieci.

Widziałem dokładnie ten błąd w innych plikach XML .. ten błąd może być spowodowany wprowadzeniem zmian w edytorze tekstu, który wprowadza śmieci.

Sposobem na sprawdzenie czy masz śmieci w pliku jest otwarcie go za pomocą "HEX Editor" Jeśli zobaczysz jakikolwiek znak przed tym ciągiem

     "<?xml version="1.0" encoding="UTF-8"?>"

jakby to był śmieć

     "‰ŠŒ<?xml version="1.0" encoding="UTF-8"?>"

to jest twój problem .... Rozwiązaniem jest użycie dobrego edytora HEX .. takiego, który pozwoli ci zapisywać pliki z różnymi typami kodowania ..

Następnie po prostu zapisz go jako UTF-8. Niektóre systemy korzystające z plików XML mogą wymagać zapisania ich jako UTF BEZ BOM, co oznacza „BEZ Byte Order Mark”

Mam nadzieję, że to pomoże komuś tam !!



1

Aby rozwiązać problem BOM w systemach Unix / Linux:

  1. Sprawdź, czy istnieje niechciany znak BOM: hexdump -C myfile.xml | more niechciany znak BOM pojawi się na początku pliku jako...<?xml>

  2. Alternatywnie, zrób file myfile.xml. Plik ze znakiem BOM pojawi się jako:myfile.xml: XML 1.0 document text, UTF-8 Unicode (with BOM) text

  3. Napraw pojedynczy plik za pomocą: tail -c +4 myfile.xml > temp.xml && mv temp.xml myfile.xml

  4. Powtórz 1 lub 2, aby sprawdzić, czy plik został oczyszczony. Prawdopodobnie również rozsądne view myfile.xmljest sprawdzenie zawartości.

Oto skrypt bash do oczyszczenia całego folderu plików XML:

#!/usr/bin/env bash

# This script is to sanitise XML files to remove any BOM characters

has_bom() { head -c3 "$1" | LC_ALL=C grep -qe '\xef\xbb\xbf'; }

for filename in *.xml ; do
  if has_bom ${filename}; then
    tail -c +4 ${filename} > temp.xml
    mv temp.xml ${filename}
  fi
done

0

To tylko dodatkowa myśl na przyszłość. Pojawienie się tego błędu może polegać na tym, że ktoś po prostu wciska losowo klawisz delete lub inny klawisz, gdy ma okno XML jako aktywny wyświetlacz i nie zwraca uwagi. Zdarzyło mi się to już wcześniej w przypadku pliku struts.xml w mojej aplikacji internetowej. Niezdarne łokcie ...


Upewniłem się, że nie uderzam w żadne klawisze
Mad-D

0

Ja też dostawałem to samo

XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,2] Message: Reference is not allowed in prolog.

, kiedy moja aplikacja tworzyła odpowiedź XML na wywołanie usługi sieci Web RestFull. Podczas tworzenia String formatu XML zamieniłem znaki & lt i & gt na <i>, a następnie błąd zniknął i otrzymałem poprawną odpowiedź. Nie wiem, jak to działało, ale zadziałało.

próbka :

String body = "<ns:addNumbersResponse xmlns:ns=\"http://java.duke.org\"><ns:return>"
            +sum
            +"</ns:return></ns:addNumbersResponse>";

0

Miałem ten sam problem.

Najpierw pobrałem plik XML na lokalny pulpit i otrzymałem Content is not allowed in prologpodczas importowania pliku na serwer portalu. Nawet wizualnie plik wyglądał dla mnie dobrze, ale w jakiś sposób był uszkodzony.

Więc ponownie pobrałem ten sam plik i spróbowałem tego samego i zadziałało.


0

Niedawno mieliśmy ten sam problem i okazało się, że jest to zły adres URL, a co za tym idzie standardowa odpowiedź HTTP 403 (co oczywiście nie jest prawidłowym XML, którego szukał klient). Podzielę się szczegółami na wypadek, gdyby ktoś w tym samym kontekście napotkał ten problem:

Była to aplikacja internetowa oparta na Springie, w której komponent bean „JaxWsPortProxyFactoryBean” został skonfigurowany w celu udostępnienia serwera proxy dla portu zdalnego.

<bean id="ourPortJaxProxyService"
    class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean"
    p:serviceInterface="com.amir.OurServiceSoapPortWs"
    p:wsdlDocumentUrl="${END_POINT_BASE_URL}/OurService?wsdl"
    p:namespaceUri="http://amir.com/jaxws" p:serviceName="OurService"
    p:portName="OurSoapPort" />

„END_POINT_BASE_URL” to zmienna środowiskowa skonfigurowana w „setenv.sh” instancji Tomcat, która obsługuje aplikację internetową. Zawartość pliku wygląda mniej więcej tak:

export END_POINT_BASE_URL="http://localhost:9001/BusinessAppServices"
#export END_POINT_BASE_URL="http://localhost:8765/BusinessAppServices"

Brakujący ";" po każdym wierszu spowodował zniekształcony adres URL, a tym samym złą odpowiedź. Oznacza to, że zamiast „BusinessAppServices / OurService? Wsdl” adres URL miał CR przed „/”. „Monitor TCP / IP” był bardzo przydatny podczas rozwiązywania problemu.


0

W moim przypadku dostałem ten błąd, ponieważ API, którego użyłem, mogło zwrócić dane w formacie XML lub JSON. Kiedy testowałem go za pomocą przeglądarki, domyślnie korzystałem z formatu XML, ale kiedy wywołałem to samo wywołanie z aplikacji Java, interfejs API zwrócił odpowiedź w formacie JSON, co naturalnie wywołało błąd analizy.


0

Nawet ja miałem podobny problem. Przyczyną był jakiś śmieciowy znak na początku pliku.

Poprawka: Po prostu otwórz plik w edytorze tekstu (przetestowany na tekście Sublime), usuń ewentualne wcięcie w pliku i skopiuj, wklej całą zawartość pliku do nowego pliku i zapisz go. Otóż ​​to!. Kiedy uruchomiłem nowy plik, działał on bez błędów analizy.


0

Wziąłem kod Dineshkumar i zmodyfikowałem, aby poprawnie zweryfikować mój plik XML:

import org.apache.log4j.Logger;

public class Myclass{

private static final Logger LOGGER = Logger.getLogger(Myclass.class);

/**
 * Validate XML file against Schemas XSD in pathEsquema directory
 * @param pathEsquema directory that contains XSD Schemas to validate
 * @param pathFileXML XML file to validate
 * @throws BusinessException if it throws any Exception
 */
public static void validarXML(String pathEsquema, String pathFileXML) 
	throws BusinessException{	
	String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
	String nameFileXSD = "file.xsd";
	String MY_SCHEMA1 = pathEsquema+nameFileXSD);
	ParserErrorHandler parserErrorHandler;
	try{
		SchemaFactory schemaFactory = SchemaFactory.newInstance(W3C_XML_SCHEMA);
		
		Source [] source = { 
			new StreamSource(new File(MY_SCHEMA1))
			};
		Schema schemaGrammar = schemaFactory.newSchema(source);

		Validator schemaValidator = schemaGrammar.newValidator();
		schemaValidator.setErrorHandler(
			parserErrorHandler= new ParserErrorHandler());
		
		/** validate xml instance against the grammar. */
		File file = new File(pathFileXML);
		InputStream isS= new FileInputStream(file);
		Reader reader = new InputStreamReader(isS,"UTF-8");
		schemaValidator.validate(new StreamSource(reader));
		
		if(parserErrorHandler.getErrorHandler().isEmpty()&& 
			parserErrorHandler.getFatalErrorHandler().isEmpty()){
			if(!parserErrorHandler.getWarningHandler().isEmpty()){
				LOGGER.info(
				String.format("WARNING validate XML:[%s] Descripcion:[%s]",
					pathFileXML,parserErrorHandler.getWarningHandler()));
			}else{
				LOGGER.info(
				String.format("OK validate  XML:[%s]",
					pathFileXML));
			}
		}else{
			throw new BusinessException(
				String.format("Error validate  XML:[%s], FatalError:[%s], Error:[%s]",
				pathFileXML,
				parserErrorHandler.getFatalErrorHandler(),
				parserErrorHandler.getErrorHandler()));
		}		
	}
	catch(SAXParseException e){
		throw new BusinessException(String.format("Error validate XML:[%s], SAXParseException:[%s]",
			pathFileXML,e.getMessage()),e);
	}
	catch (SAXException e){
		throw new BusinessException(String.format("Error validate XML:[%s], SAXException:[%s]",
			pathFileXML,e.getMessage()),e);
	}
	catch (IOException e) {
		throw new BusinessException(String.format("Error validate XML:[%s], 
			IOException:[%s]",pathFileXML,e.getMessage()),e);
	}
	
}

}


0

Ustaw swój dokument tak, aby wyglądał następująco:

<?xml version="1.0" encoding="UTF-8" ?>
<root>
    %children%
</root>

0

Miałem ten sam problem ze sprężyną

MarshallingMessageConverter

i przez kod przedprocesowy.

Może ktoś będzie potrzebował powodu: BytesMessage #readBytes - odczyt bajtów ... i zapomniałem, że odczyt jest operacją jednokierunkową. Nie możesz przeczytać dwa razy.


0

Wypróbuj z BOMInputStream w apache.commons.io:

public static <T> T getContent(Class<T> instance, SchemaType schemaType, InputStream stream) throws JAXBException, SAXException, IOException {

    JAXBContext context = JAXBContext.newInstance(instance);
    Unmarshaller unmarshaller = context.createUnmarshaller();
    Reader reader = new InputStreamReader(new BOMInputStream(stream), "UTF-8");

    JAXBElement<T> entry = unmarshaller.unmarshal(new StreamSource(reader), instance);

    return entry.getValue();
}

0

Miałem ten sam problem podczas analizowania info.plistpliku na komputerze Mac. Jednak problem został rozwiązany za pomocą następującego polecenia, które przekształciło plik w XML.

plutil -convert xml1 info.plist

Mam nadzieję, że to komuś pomoże.


0

Miałem ten sam problem z niektórymi plikami XML, rozwiązałem odczyt pliku z kodowaniem ANSI (Windows-1252) i zapisanie pliku z kodowaniem UTF-8 małym skryptem w Pythonie. Próbowałem użyć Notepad ++, ale nie udało mi się:

import os
import sys

path = os.path.dirname(__file__)

file_name = 'my_input_file.xml'

if __name__ == "__main__":
    with open(os.path.join(path, './' + file_name), 'r', encoding='cp1252') as f1:
        lines = f1.read()
        f2 = open(os.path.join(path, './' + 'my_output_file.xml'), 'w', encoding='utf-8')
        f2.write(lines)
        f2.close()
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.