2017-02-14 10 views
-4

В настоящее время мы находимся в модуле, который пытается проанализировать XML с использованием компонента LIBXML2 и обнаружил проблему, связанную с ним, когда XML, содержащий пространство имен, содержащее не-ASCII-символ, такой как этот é.Есть ли онлайн-анализатор XML LIBXML2 или способ анализа XML с помощью автономного libxml2?

Пример файла XML:

< ?xml version="1.0" encoding="UTF-8"?> 
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> 
    <SOAP:Body> 
    <Helloé xmlns="http://schemas/Helloé"> 
     <ns0:Helloé xmlns:ns0="http://schemas/Helloé" /> 
    </Helloé> 
    </SOAP:Body> 
</SOAP:Envelope> 

Мы смогли проверить и подтвердить, что это поддерживается DOM парсер, проверив ее с помощью небольшой тестовой программы. Когда мы попытались проверить обоснованность данного сценария при условии, по W3School XML online parser мы получаем следующее сообщение об ошибке:

enter image description here

Мы проверили его через другие интернет-источники тоже, как, как this даже который говорит то же самое - то же сообщение об ошибке.

Может кто-нибудь, пожалуйста, сообщите нам, если есть способ идентифицировать онлайн-инструмент/ресурс, где мы можем указать это на libxml2?

Или образец программы, который может проверить это?

+1

Вы пытались использовать ** действительный ** URL? Под этим я подразумеваю использование '%' кодировки для любых недопустимых символов, таких как буквы, отличные от ASCII, такие как 'é'. – Andreas

+0

Спасибо за ваш ответ, но это тоже не работает! –

+0

Не понимаю нисходящие точки по этому вопросу? Кто-нибудь должен объяснить? –

ответ

1

Просто запустите файл через libxml2-х xmllint в командной строке:

$ xmllint --noout so.xml 
so.xml:4: namespace error : xmlns: 'http://schemas/Helloé' is not a valid URI 
    <Helloé xmlns="http://schemas/Helloé"> 
             ^
so.xml:5: namespace error : xmlns:ns0: 'http://schemas/Helloé' is not a valid URI 
     <ns0:Helloé xmlns:ns0="http://schemas/Helloé" /> 
                ^

Кроме того, замена é с правильными UTF-8 процентов-эвакуационных работ. Просто измените URI на http://schemas/Hello%C3%A9.

+0

Спасибо за это, я проверю! –

+0

Спасибо, я смог проверить это! –