2


I need to turn an entire HTML document into one, valid JavaScript string.

This is a process that will need to be done regularly. For example:


This:
<html>
    <!--here is my html-->
    <div id="Main">some content</div>
    </html>

needs to become this:

var htmlString="<html><!--here is my html --><div id=\"Main\">some content</div><html>"

Based on what I've ready my initial thought is to read the contents of the file with Java and write my own parser. I don't think this would be possible with a shell script or the like? (I'm on OSX)

Can someone recommend a good approach?

Similar Questions I've Read
Reading entire html file to String?
convert html to javascript

Community
  • 1
  • 1
Paul
  • 529
  • 1
  • 6
  • 20
  • What language are you using to do this conversion? – Niet the Dark Absol Mar 13 '14 at 11:43
  • I'm familiar with Java, but open to suggestions. Dev environment is OSX. Whatever the most expedient process would be to convert one file (html) to another (js) where the JS file contains only var stringName="" – Paul Mar 13 '14 at 11:45
  • 1
    Btw., the string you have shown is _not_ an identical representation of the document shown, because you left out white space (and this _can_ be significant). – CBroe Mar 13 '14 at 11:48
  • Your questions says to use java, but not tagged with 'java' do you mean javascript or java ? - If 'java' tag as java – Rob Sedgwick Mar 13 '14 at 11:48
  • And the easiest way would probably be not to bother with writing any “parsers” or such at all – but just take the whole document content you read and encode it as JSON. – CBroe Mar 13 '14 at 11:49
  • @RobSedgwick I thought my question related to both. I want the end result to be JavaScript, but the means by which I get that JavaScript could potentially be Java. – Paul Mar 13 '14 at 11:50
  • @Paul, okay - it will give widely different answers - I will tag as java also. – Rob Sedgwick Mar 13 '14 at 11:52

2 Answers2

4

Try this live, jsFiddle

JS

var htmlString = document.getElementsByTagName('html')[0].innerHTML;
console.log(htmlString);

HTML

<p>Hello</p>
<div>Hi div</div>
Community
  • 1
  • 1
Jaykumar Patel
  • 26,836
  • 12
  • 74
  • 76
1

How about a jQuery GET request?

e.g.

$.get( "http://www.domain.com/some/page.html", function( data ) {
    // data == entire page in html string
});

It will work on php script also (resulting html output that is).


Alternatively, if you want to achieve this PHP, something like this will also work:

<?php

$html_str = file_get_contents('http://www.domain.com/some/page.html');

?>
Latheesan
  • 23,247
  • 32
  • 107
  • 201