我想知道您是否可以请求帮助以编程方式从以下html文件生成.cpp / .h文件(使用任何脚本语言,编程语言,甚至使用vi或emacs等编辑器): / p>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<title>Class</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body link="blue" vlink="purple" bgcolor="#FFFABB" text="black">
<h2><font face="Helvetica">Code Fragment: Class</font></h2>
</center><br><dl><dd><pre>
<font color=#A000A0>template</font> <<font color=#A000A0>typename</font> G>
<font color=#A000A0>class</font> Components : <font color=#A000A0>public</font> DFS<G> { <font color=#0000FF>// count components</font>
<font color=#A000A0>private</font>:
<font color=#A000A0>int</font> nComponents; <font color=#0000FF>// num of components</font>
<font color=#A000A0>public</font>:
<font color=#000000>Components</font>(<font color=#A000A0>const</font> G& g): DFS<G>(g) {} <font color=#0000FF>// constructor</font>
<font color=#A000A0>int</font> <font color=#A000A0>operator</font>()(); <font color=#0000FF>// count components</font>
};
</dl>
</body>
</html>
如果你能指出如何在另一个方向上做到这一点,那就太好了。非常感谢。
答案 0 :(得分:8)
这对你有用吗?
[18:56:44 jaidev@~]$ lynx --dump foo.html
Code Fragment: Class
template <typename G>
class Components : public DFS<G> { // count components
private:
int nComponents; // num of components
public:
Components(const G& g): DFS<G>(g) {} // constructor
int operator()(); // count components
};
[18:56:49 jaidev@~]$
修改强>
反方向。如果您使用vim作为编辑器,则可以输入:TOhtml
以在新缓冲区中生成突出显示HTML代码的语法。它会根据你的vim colorscheme生成一个html。要更改colorscheme,请使用:colorscheme <name>
命令。
答案 1 :(得分:2)
PHP脚本:
$doc = new DOMDocument();
$doc->loadHTMLFile("file.html");
$xpath = new DOMXpath($doc);
$str = '';
foreach ($xpath->query("//dl//text()") as $node) {
$str .= $node->nodeValue . ' ';
}
file_put_contents('file.cpp', $str);
file.cpp的内容:
template < typename G>
class Components : public DFS<G> { // count components
private :
int nComponents; // num of components
public :
Components ( const G& g): DFS<G>(g) {} // constructor
int operator ()(); // count components
};
答案 2 :(得分:1)
你可以使用正则表达式......
<body>
中的内容<.*>
的所有内容)。<
,>
,&
等。剩下的应该是您正在寻找的代码。
答案 3 :(得分:1)
从HTML到源代码的另一个选择是html2text
实用程序,它经常被安装在许多Linux发行版中。
matteo@teomint:~/Desktop$ html2text out.html
***** Code Fragment: Class *****
template <typename G>
class Components : public DFS<G> { // count components
private:
int nComponents; // num of components
public:
Components(const G& g): DFS<G>(g) {} // constructor
int operator()(); // count components
};
答案 4 :(得分:0)
pre
DOMDocument
代码块
strip_tags()
来自结果答案 5 :(得分:0)
如果您尝试剥离所有HTML标记以取回原始的非突出显示的源代码,那么您有两个我能想到的选项: