BeautifulSoup имеет простую в использовании функцию prettify()
.
Отступы на один уровень отступов. Он работает намного лучше, чем lxml's pretty_print, и является коротким и сладким.
from bs4 import BeautifulSoup
bs = BeautifulSoup(open(xml_file), 'xml')
print bs.prettify()
Джерси UriBuilder кодирует компоненты URI с помощью application/x-www-form-urlencoded и RFC 3986 по мере необходимости. По словам Разработчика методы Javadoc
выполняют контекстное кодирование символов, не разрешенных в соответствующем компоненте URI после правил application/x-www-form-urlencoded типа среды для параметров запроса и RFC 3986 для всех других компонентов. Обратите внимание, что только символы, не разрешенные в конкретном компоненте, подвергаются кодированию так, например, путь, предоставленный одному из методов пути, может содержать параметры матрицы или сегменты разнообразного пути, так как разделители являются допустимыми символами и не будут закодированы. Процент закодировал значения, также распознаны, где позволено и не будет двойной закодированный.
Mmhh я знаю, что Вы уже отбросили URLEncoder, но несмотря на то, что говорят документы, я решил дать ему попытку.
Вы сказали:
, Например, учитывая вход:
http://google.com/resource?key=value
я ожидаю вывод:
http%3a%2f%2fgoogle.com%2fresource%3fkey%3dvalue
Так:
C:\oreyes\samples\java\URL>type URLEncodeSample.java
import java.net.*;
public class URLEncodeSample {
public static void main( String [] args ) throws Throwable {
System.out.println( URLEncoder.encode( args[0], "UTF-8" ));
}
}
C:\oreyes\samples\java\URL>javac URLEncodeSample.java
C:\oreyes\samples\java\URL>java URLEncodeSample "http://google.com/resource?key=value"
http%3A%2F%2Fgoogle.com%2Fresource%3Fkey%3Dvalue
Как ожидалось.
, Какова была бы проблема с этим?
Я думаю, что класс URI является тем, который Вы ищете.
Кажется, что CharEscapers от Google GData-java-client имеет то, что Вы хотите. Это имеет uriPathEscaper метод, uriQueryStringEscaper, и универсальный uriEscaper. (Весь объект Беглеца возврата, который делает фактический выход). Лицензия Apache.
У меня не хватает репутации, чтобы комментировать ответы, но я просто хотел отметить, что скачивание JSR-311 api само по себе не сработает. Вам необходимо скачать реализацию ссылки (jersey).
Только скачивание api со страницы JSR даст Вам ClassNotFoundException, когда api попытается найти реализацию во время выполнения.