在Linux下运行的命令行HTML5美化器.
乱码,丑陋的HTML5代码.可能是多个模板的结果.你不爱它,它不爱你.
纯美.代码很好地缩进,有足够的换行符,关心它的空白.您希望直接在网站上显示代码,而不是在网络浏览器中查看它.
我正在使用lxml.html生成一些HTML.我想打印(带缩进)我的最终结果到一个html文件.我怎么做?
这是我迄今为止所尝试过的(我对Python和lxml相对较新):
import lxml.html as lh
from lxml.html import builder as E
sliderRoot=lh.Element("div", E.CLASS("scroll"), style="overflow-x: hidden; overflow-y: hidden;")
scrollContainer=lh.Element("div", E.CLASS("scrollContainer"), style="width: 4340px;")
sliderRoot.append(scrollContainer)
print lh.tostring(sliderRoot, pretty_print = True, method="html")
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在使用该pretty_print=True属性.我认为这会给缩进代码,但它并没有真正帮助.这是输出:
<div style="overflow-x: hidden; overflow-y: hidden;" class="scroll"><div style="width: 4340px;" class="scrollContainer"></div></div>
使用以下简单代码:
package test;
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class TestOutputKeys {
public static void main(String[] args) throws TransformerException {
// Instantiate transformer input
Source xmlInput = new StreamSource(new StringReader(
"<!-- Document comment --><aaa><bbb/><ccc/></aaa>"));
StreamResult xmlOutput = new StreamResult(new StringWriter());
// Configure transformer
Transformer transformer = TransformerFactory.newInstance()
.newTransformer(); // An identity transformer
transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "testing.dtd");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(xmlInput, xmlOutput);
System.out.println(xmlOutput.getWriter().toString());
}
}
Run Code Online (Sandbox Code Playgroud)
我得到输出:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Document comment --><!DOCTYPE aaa SYSTEM "testing.dtd">
<aaa>
<bbb/>
<ccc/>
</aaa>
Run Code Online (Sandbox Code Playgroud)
问题A:doctype标签出现在文档注释之后.是否有可能在文件评论之前出现?
问题B:如何仅使用JavaSE 5.0 …
我有一个文本框,我想以人类可读的方式在其中显示一个C#对象,仅用于调试原因.如果可能,我不想使用外部库.我该怎么做呢?
我知道如何用其他语言来做这件事,而不是C++,我不得不在这里使用它.
我有一组字符串,我打印到列表中,并且每个字符串之间需要逗号,但不是逗号.例如,在java中,我会使用stringbuilder,并在构建字符串后删除逗号.我如何用C++做到这一点?
auto iter = keywords.begin();
for (iter; iter != keywords.end( ); iter++ )
{
out << *iter << ", ";
}
out << endl;
Run Code Online (Sandbox Code Playgroud)
我最初尝试插入此块来执行此操作(在此处移动逗号打印)
if (iter++ != keywords.end())
out << ", ";
iter--;
Run Code Online (Sandbox Code Playgroud)
我讨厌小东西把我绊倒的时候.
编辑:谢谢大家.这就是我在这里发布这样的东西的原因.这么多好的答案,并以不同的方式解决.经过一个学期的Java和汇编(不同的类),不得不在4天内完成一个C++项目,这让我陷入了困境.我不仅得到了答案,还有机会思考解决这类问题的不同方法.真棒.
我有一个紧凑的JSON字符串,我想在Java中很好地格式化它,而不必先将它反序列化 - 例如就像jsonlint.org那样.有没有提供这个的图书馆?
类似的XML解决方案也很不错.
我正在使用Scala Combinators创建解析器.太棒了.我最终得到的是一长串陷入困境的案例类,例如:ClassDecl(Complex,List(VarDecl(Real,float), VarDecl(Imag,float)))只需要100倍.我想知道是否有一种很好的方法以树状方式打印这样的案例类,以便更容易阅读..?(或其他形式的漂亮印刷品)
ClassDecl
name = Complex
fields =
- VarDecl
name = Real
type = float
- VarDecl
name = Imag
type = float
Run Code Online (Sandbox Code Playgroud)
我想结束这样的事情
编辑:奖金问题
是否还有一种方法来显示参数的名称..?喜欢:ClassDecl(name=Complex, fields=List( ... )?
我正在尝试提高应用程序的性能.我有一个调用树形式的性能信息,具有以下节点类:
public class Node
{
public string Name; // method name
public decimal Time; // time spent in method
public List<Node> Children;
}
Run Code Online (Sandbox Code Playgroud)
我想打印出树,这样我就能看到节点之间的线条 - 就像这个问题一样.我可以在C#中使用什么算法来做到这一点?
编辑:显然我需要使用递归 - 但我的尝试继续将行放在错误的位置.我要求的是一种特定的算法,它将以一种很好的方式打印树 - 有关何时打印垂直线以及何时打印水平线的详细信息.
编辑:仅使用字符串的副本来缩进节点是不够的.我不是在找
A
|-B
|-|-C
|-|-D
|-|-|-E
|-F
|-|-G
Run Code Online (Sandbox Code Playgroud)
它一定要是
A
+-B
| +-C
| +-D
| +-E
+-F
+-G
Run Code Online (Sandbox Code Playgroud)
或者类似的东西,只要树形结构可见.请注意,C和D的缩进与G不同 - 我不能只使用重复的字符串来缩进节点.
在使用Spring MVC开发REST服务的同时,我希望在开发中渲染JSON"漂亮打印",但在生产中正常(减少空白).
我们有一个包含大约500,000行代码的项目,使用git进行管理,其中大部分已经使用了几年.我们即将进行一系列修改,以使旧代码符合开发人员社区的当前标准和最佳实践,包括命名约定,异常处理,缩进等.
你可以把它想象成漂亮的印刷和低级/机械重构之间的东西.
这个过程很可能触及代码库中的几乎所有代码行(~85%),并且一些行将受到多达五次修改.所有更改都旨在在语义上保持中立.
pretty-print ×10
c# ×2
indentation ×2
java ×2
json ×2
.net ×1
c++ ×1
case-class ×1
command-line ×1
formatting ×1
git ×1
html ×1
html5 ×1
jackson ×1
lxml ×1
python ×1
refactoring ×1
scala ×1
spring-mvc ×1
tree ×1
xml ×1