From fc513854831a06dde55319be67c42a8f71de0e8f Mon Sep 17 00:00:00 2001 From: David Sun Date: Fri, 23 Sep 2011 07:29:21 +0000 Subject: [PATCH] First Commit --- README | 3 + src/org/htmlcleaner/.svn/all-wcprops | 227 +++ src/org/htmlcleaner/.svn/entries | 1286 +++++++++++++++++ .../.svn/text-base/BaseToken.java.svn-base | 52 + .../BrowserCompactXmlSerializer.java.svn-base | 102 ++ .../text-base/CleanerProperties.java.svn-base | 260 ++++ .../CleanerTransformations.java.svn-base | 68 + .../.svn/text-base/CommandLine.java.svn-base | 326 +++++ .../.svn/text-base/CommentNode.java.svn-base | 72 + .../CompactHtmlSerializer.java.svn-base | 109 ++ .../CompactXmlSerializer.java.svn-base | 83 ++ .../ConfigFileTagProvider.java.svn-base | 244 ++++ .../.svn/text-base/ContentNode.java.svn-base | 71 + .../DefaultTagProvider.java.svn-base | 492 +++++++ .../.svn/text-base/DoctypeToken.java.svn-base | 134 ++ .../text-base/DomSerializer.java.svn-base | 143 ++ .../.svn/text-base/EndTagToken.java.svn-base | 63 + .../.svn/text-base/HtmlCleaner.java.svn-base | 884 +++++++++++ .../HtmlCleanerException.java.svn-base | 62 + .../text-base/HtmlCleanerForAnt.java.svn-base | 343 +++++ .../.svn/text-base/HtmlNode.java.svn-base | 7 + .../text-base/HtmlSerializer.java.svn-base | 216 +++ .../text-base/HtmlTokenizer.java.svn-base | 813 +++++++++++ .../text-base/ITagInfoProvider.java.svn-base | 52 + .../text-base/JDomSerializer.java.svn-base | 161 +++ .../PrettyHtmlSerializer.java.svn-base | 212 +++ .../PrettyXmlSerializer.java.svn-base | 178 +++ .../.svn/text-base/Serializer.java.svn-base | 263 ++++ .../SimpleHtmlSerializer.java.svn-base | 68 + .../SimpleXmlSerializer.java.svn-base | 69 + .../text-base/SpecialEntity.java.svn-base | 377 +++++ .../.svn/text-base/TagInfo.java.svn-base | 389 +++++ .../.svn/text-base/TagNode.java.svn-base | 714 +++++++++ .../text-base/TagNodeVisitor.java.svn-base | 16 + .../.svn/text-base/TagToken.java.svn-base | 65 + .../text-base/TagTransformation.java.svn-base | 134 ++ .../.svn/text-base/Utils.java.svn-base | 480 ++++++ .../.svn/text-base/XPather.java.svn-base | 586 ++++++++ .../text-base/XPatherException.java.svn-base | 62 + .../text-base/XmlSerializer.java.svn-base | 230 +++ src/org/htmlcleaner/BaseToken.java | 67 + .../BrowserCompactXmlSerializer.java | 120 ++ src/org/htmlcleaner/CleanerProperties.java | 277 ++++ .../htmlcleaner/CleanerTransformations.java | 84 ++ src/org/htmlcleaner/CommentNode.java | 86 ++ .../htmlcleaner/CompactHtmlSerializer.java | 131 ++ src/org/htmlcleaner/CompactXmlSerializer.java | 100 ++ src/org/htmlcleaner/ContentNode.java | 88 ++ src/org/htmlcleaner/DefaultTagProvider.java | 522 +++++++ src/org/htmlcleaner/DoctypeToken.java | 146 ++ src/org/htmlcleaner/DomSerializer.java | 157 ++ src/org/htmlcleaner/EndTagToken.java | 80 + src/org/htmlcleaner/FastHtmlSerializer.java | 64 + src/org/htmlcleaner/HtmlCleaner.java | 932 ++++++++++++ src/org/htmlcleaner/HtmlCleanerException.java | 79 + src/org/htmlcleaner/HtmlNode.java | 23 + src/org/htmlcleaner/HtmlSerializer.java | 236 +++ src/org/htmlcleaner/HtmlTokenizer.java | 836 +++++++++++ src/org/htmlcleaner/ITagInfoProvider.java | 66 + src/org/htmlcleaner/PrettyHtmlSerializer.java | 233 +++ src/org/htmlcleaner/Serializer.java | 338 +++++ src/org/htmlcleaner/SimpleHtmlSerializer.java | 86 ++ src/org/htmlcleaner/SimpleXmlSerializer.java | 87 ++ src/org/htmlcleaner/SpecialEntity.java | 398 +++++ src/org/htmlcleaner/TagInfo.java | 406 ++++++ src/org/htmlcleaner/TagNode.java | 765 ++++++++++ src/org/htmlcleaner/TagNodeVisitor.java | 36 + src/org/htmlcleaner/TagToken.java | 81 ++ src/org/htmlcleaner/TagTransformation.java | 164 +++ src/org/htmlcleaner/Utils.java | 519 +++++++ src/org/htmlcleaner/XPather.java | 626 ++++++++ src/org/htmlcleaner/XPatherException.java | 80 + src/org/htmlcleaner/XmlSerializer.java | 254 ++++ 73 files changed, 18283 insertions(+) create mode 100644 README create mode 100644 src/org/htmlcleaner/.svn/all-wcprops create mode 100644 src/org/htmlcleaner/.svn/entries create mode 100644 src/org/htmlcleaner/.svn/text-base/BaseToken.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/BrowserCompactXmlSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/CleanerProperties.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/CleanerTransformations.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/CommandLine.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/CommentNode.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/CompactHtmlSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/CompactXmlSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/ConfigFileTagProvider.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/ContentNode.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/DefaultTagProvider.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/DoctypeToken.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/DomSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/EndTagToken.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/HtmlCleaner.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/HtmlCleanerException.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/HtmlCleanerForAnt.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/HtmlNode.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/HtmlSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/HtmlTokenizer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/ITagInfoProvider.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/JDomSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/PrettyHtmlSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/PrettyXmlSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/Serializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/SimpleHtmlSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/SimpleXmlSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/SpecialEntity.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/TagInfo.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/TagNode.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/TagNodeVisitor.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/TagToken.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/TagTransformation.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/Utils.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/XPather.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/XPatherException.java.svn-base create mode 100644 src/org/htmlcleaner/.svn/text-base/XmlSerializer.java.svn-base create mode 100644 src/org/htmlcleaner/BaseToken.java create mode 100644 src/org/htmlcleaner/BrowserCompactXmlSerializer.java create mode 100644 src/org/htmlcleaner/CleanerProperties.java create mode 100644 src/org/htmlcleaner/CleanerTransformations.java create mode 100644 src/org/htmlcleaner/CommentNode.java create mode 100644 src/org/htmlcleaner/CompactHtmlSerializer.java create mode 100644 src/org/htmlcleaner/CompactXmlSerializer.java create mode 100644 src/org/htmlcleaner/ContentNode.java create mode 100644 src/org/htmlcleaner/DefaultTagProvider.java create mode 100644 src/org/htmlcleaner/DoctypeToken.java create mode 100644 src/org/htmlcleaner/DomSerializer.java create mode 100644 src/org/htmlcleaner/EndTagToken.java create mode 100644 src/org/htmlcleaner/FastHtmlSerializer.java create mode 100644 src/org/htmlcleaner/HtmlCleaner.java create mode 100644 src/org/htmlcleaner/HtmlCleanerException.java create mode 100644 src/org/htmlcleaner/HtmlNode.java create mode 100644 src/org/htmlcleaner/HtmlSerializer.java create mode 100644 src/org/htmlcleaner/HtmlTokenizer.java create mode 100644 src/org/htmlcleaner/ITagInfoProvider.java create mode 100644 src/org/htmlcleaner/PrettyHtmlSerializer.java create mode 100644 src/org/htmlcleaner/Serializer.java create mode 100644 src/org/htmlcleaner/SimpleHtmlSerializer.java create mode 100644 src/org/htmlcleaner/SimpleXmlSerializer.java create mode 100644 src/org/htmlcleaner/SpecialEntity.java create mode 100644 src/org/htmlcleaner/TagInfo.java create mode 100644 src/org/htmlcleaner/TagNode.java create mode 100644 src/org/htmlcleaner/TagNodeVisitor.java create mode 100644 src/org/htmlcleaner/TagToken.java create mode 100644 src/org/htmlcleaner/TagTransformation.java create mode 100644 src/org/htmlcleaner/Utils.java create mode 100644 src/org/htmlcleaner/XPather.java create mode 100644 src/org/htmlcleaner/XPatherException.java create mode 100644 src/org/htmlcleaner/XmlSerializer.java diff --git a/README b/README new file mode 100644 index 0000000..09e792b --- /dev/null +++ b/README @@ -0,0 +1,3 @@ +HtmlCleaner is a project originally developed by Vladimir Nikic (http://htmlcleaner.sourceforge.net/). + +This version is modified by Zheng Sun. \ No newline at end of file diff --git a/src/org/htmlcleaner/.svn/all-wcprops b/src/org/htmlcleaner/.svn/all-wcprops new file mode 100644 index 0000000..ef0048b --- /dev/null +++ b/src/org/htmlcleaner/.svn/all-wcprops @@ -0,0 +1,227 @@ +K 25 +svn:wc:ra_dav:version-url +V 69 +/svnroot/htmlcleaner/!svn/ver/182/trunk/src/main/java/org/htmlcleaner +END +Utils.java +K 25 +svn:wc:ra_dav:version-url +V 80 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/Utils.java +END +PrettyXmlSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 94 +/svnroot/htmlcleaner/!svn/ver/179/trunk/src/main/java/org/htmlcleaner/PrettyXmlSerializer.java +END +SimpleXmlSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 94 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/SimpleXmlSerializer.java +END +BrowserCompactXmlSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 102 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/BrowserCompactXmlSerializer.java +END +HtmlCleanerForAnt.java +K 25 +svn:wc:ra_dav:version-url +V 92 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/HtmlCleanerForAnt.java +END +CommentNode.java +K 25 +svn:wc:ra_dav:version-url +V 86 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/CommentNode.java +END +ITagInfoProvider.java +K 25 +svn:wc:ra_dav:version-url +V 91 +/svnroot/htmlcleaner/!svn/ver/179/trunk/src/main/java/org/htmlcleaner/ITagInfoProvider.java +END +BaseToken.java +K 25 +svn:wc:ra_dav:version-url +V 84 +/svnroot/htmlcleaner/!svn/ver/179/trunk/src/main/java/org/htmlcleaner/BaseToken.java +END +TagNode.java +K 25 +svn:wc:ra_dav:version-url +V 82 +/svnroot/htmlcleaner/!svn/ver/181/trunk/src/main/java/org/htmlcleaner/TagNode.java +END +CleanerTransformations.java +K 25 +svn:wc:ra_dav:version-url +V 97 +/svnroot/htmlcleaner/!svn/ver/143/trunk/src/main/java/org/htmlcleaner/CleanerTransformations.java +END +XmlSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 88 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/XmlSerializer.java +END +DefaultTagProvider.java +K 25 +svn:wc:ra_dav:version-url +V 93 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/DefaultTagProvider.java +END +HtmlTokenizer.java +K 25 +svn:wc:ra_dav:version-url +V 88 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/HtmlTokenizer.java +END +TagNodeVisitor.java +K 25 +svn:wc:ra_dav:version-url +V 89 +/svnroot/htmlcleaner/!svn/ver/152/trunk/src/main/java/org/htmlcleaner/TagNodeVisitor.java +END +CompactXmlSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 95 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/CompactXmlSerializer.java +END +TagTransformation.java +K 25 +svn:wc:ra_dav:version-url +V 92 +/svnroot/htmlcleaner/!svn/ver/143/trunk/src/main/java/org/htmlcleaner/TagTransformation.java +END +EndTagToken.java +K 25 +svn:wc:ra_dav:version-url +V 86 +/svnroot/htmlcleaner/!svn/ver/179/trunk/src/main/java/org/htmlcleaner/EndTagToken.java +END +CompactHtmlSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 96 +/svnroot/htmlcleaner/!svn/ver/156/trunk/src/main/java/org/htmlcleaner/CompactHtmlSerializer.java +END +PrettyHtmlSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 95 +/svnroot/htmlcleaner/!svn/ver/161/trunk/src/main/java/org/htmlcleaner/PrettyHtmlSerializer.java +END +SimpleHtmlSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 95 +/svnroot/htmlcleaner/!svn/ver/156/trunk/src/main/java/org/htmlcleaner/SimpleHtmlSerializer.java +END +DoctypeToken.java +K 25 +svn:wc:ra_dav:version-url +V 87 +/svnroot/htmlcleaner/!svn/ver/179/trunk/src/main/java/org/htmlcleaner/DoctypeToken.java +END +Serializer.java +K 25 +svn:wc:ra_dav:version-url +V 85 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/Serializer.java +END +DomSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 88 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/DomSerializer.java +END +HtmlNode.java +K 25 +svn:wc:ra_dav:version-url +V 83 +/svnroot/htmlcleaner/!svn/ver/152/trunk/src/main/java/org/htmlcleaner/HtmlNode.java +END +XPather.java +K 25 +svn:wc:ra_dav:version-url +V 82 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/XPather.java +END +TagToken.java +K 25 +svn:wc:ra_dav:version-url +V 83 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/TagToken.java +END +ConfigFileTagProvider.java +K 25 +svn:wc:ra_dav:version-url +V 96 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/ConfigFileTagProvider.java +END +SpecialEntity.java +K 25 +svn:wc:ra_dav:version-url +V 88 +/svnroot/htmlcleaner/!svn/ver/143/trunk/src/main/java/org/htmlcleaner/SpecialEntity.java +END +HtmlCleanerException.java +K 25 +svn:wc:ra_dav:version-url +V 95 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/HtmlCleanerException.java +END +ContentNode.java +K 25 +svn:wc:ra_dav:version-url +V 86 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/ContentNode.java +END +JDomSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 89 +/svnroot/htmlcleaner/!svn/ver/182/trunk/src/main/java/org/htmlcleaner/JDomSerializer.java +END +CleanerProperties.java +K 25 +svn:wc:ra_dav:version-url +V 92 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/CleanerProperties.java +END +CommandLine.java +K 25 +svn:wc:ra_dav:version-url +V 86 +/svnroot/htmlcleaner/!svn/ver/180/trunk/src/main/java/org/htmlcleaner/CommandLine.java +END +TagInfo.java +K 25 +svn:wc:ra_dav:version-url +V 82 +/svnroot/htmlcleaner/!svn/ver/179/trunk/src/main/java/org/htmlcleaner/TagInfo.java +END +XPatherException.java +K 25 +svn:wc:ra_dav:version-url +V 91 +/svnroot/htmlcleaner/!svn/ver/178/trunk/src/main/java/org/htmlcleaner/XPatherException.java +END +HtmlSerializer.java +K 25 +svn:wc:ra_dav:version-url +V 89 +/svnroot/htmlcleaner/!svn/ver/161/trunk/src/main/java/org/htmlcleaner/HtmlSerializer.java +END +HtmlCleaner.java +K 25 +svn:wc:ra_dav:version-url +V 86 +/svnroot/htmlcleaner/!svn/ver/182/trunk/src/main/java/org/htmlcleaner/HtmlCleaner.java +END diff --git a/src/org/htmlcleaner/.svn/entries b/src/org/htmlcleaner/.svn/entries new file mode 100644 index 0000000..df62621 --- /dev/null +++ b/src/org/htmlcleaner/.svn/entries @@ -0,0 +1,1286 @@ +10 + +dir +185 +https://htmlcleaner.svn.sourceforge.net/svnroot/htmlcleaner/trunk/src/main/java/org/htmlcleaner +https://htmlcleaner.svn.sourceforge.net/svnroot/htmlcleaner + + + +2010-12-28T08:38:07.990619Z +182 +vnikic + + + + + + + + + + + + + + +482c6979-392e-0410-9d6c-a8d33d214f2b + +Utils.java +file + + + + +2011-08-31T14:45:35.422737Z +ffb5dc5891f0454bfa35022d449761c9 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +18031 + +PrettyXmlSerializer.java +file + + + + +2011-08-31T14:45:35.422737Z +4196d81ae85ecf7e3476cd9107bfabf2 +2010-12-21T08:28:05.290712Z +179 +vnikic + + + + + + + + + + + + + + + + + + + + + +6735 + +SimpleXmlSerializer.java +file + + + + +2011-08-31T14:45:35.423737Z +14e24cbadd63227fb1c03e349e06b36a +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +2795 + +BrowserCompactXmlSerializer.java +file + + + + +2011-08-31T14:45:35.423737Z +debc085a566ba1256d3337f577506501 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +4364 + +HtmlCleanerForAnt.java +file + + + + +2011-08-31T14:45:35.423737Z +ceecca129516572d4ef46ce4b37f2015 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +13178 + +CommentNode.java +file + + + + +2011-08-31T14:45:35.423737Z +ff3ab23b15d36ddaa9960a5f275cd394 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +2536 + +ITagInfoProvider.java +file + + + + +2011-08-31T14:45:35.424737Z +77a1d703c600f766191ab5faccad3235 +2010-12-21T08:28:05.290712Z +179 +vnikic + + + + + + + + + + + + + + + + + + + + + +2203 + +BaseToken.java +file + + + + +2011-08-31T14:45:35.424737Z +f8090c98dbe50aecb46fffefe99c731d +2010-12-21T08:28:05.290712Z +179 +vnikic + + + + + + + + + + + + + + + + + + + + + +2099 + +TagNode.java +file + + + + +2011-08-31T14:45:35.424737Z +51e1dcb03bb6d2d3b6d4fc6f8be87bfb +2010-12-22T10:52:37.784825Z +181 +vnikic + + + + + + + + + + + + + + + + + + + + + +23956 + +CleanerTransformations.java +file + + + + +2011-08-31T14:45:35.424737Z +85b71f46b9cc4563def047913fdb6e46 +2008-09-02T12:25:06.882097Z +91 +vnikic + + + + + + + + + + + + + + + + + + + + + +2638 + +XmlSerializer.java +file + + + + +2011-08-31T14:45:35.424737Z +39d0c479436288b8dd56f58008601570 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +8385 + +DefaultTagProvider.java +file + + + + +2011-08-31T14:45:35.425737Z +96cbeedb66e3e388de9df532b6c2a24e +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +26049 + +HtmlTokenizer.java +file + + + + +2011-08-31T14:45:35.425737Z +9bbee99f7394150b9541b35d59d18c78 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +25929 + +TagNodeVisitor.java +file + + + + +2011-08-31T14:45:35.425737Z +ec0d902b50625d11f9d605a0243cc45e +2010-12-01T09:23:45.795391Z +152 +vnikic + + + + + + + + + + + + + + + + + + + + + +433 + +CompactXmlSerializer.java +file + + + + +2011-08-31T14:45:35.425737Z +eea4fdd5577e67145507c404cc815a03 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +3432 + +TagTransformation.java +file + + + + +2011-08-31T14:45:35.426737Z +09cfe21df5733c8bb0d625d686d2a4ff +2008-09-02T12:25:06.882097Z +91 +vnikic + + + + + + + + + + + + + + + + + + + + + +5201 + +EndTagToken.java +file + + + + +2011-08-31T14:45:35.426737Z +4c8b58406fda4e6aa6ffcd7610538a8d +2010-12-21T08:28:05.290712Z +179 +vnikic + + + + + + + + + + + + + + + + + + + + + +2333 + +CompactHtmlSerializer.java +file + + + + +2011-08-31T14:45:35.426737Z +78ab51ddd7dc46f4066fd675c6a735f0 +2010-12-01T22:51:19.417216Z +156 +vnikic + + + + + + + + + + + + + + + + + + + + + +4485 + +PrettyHtmlSerializer.java +file + + + + +2011-08-31T14:45:35.426737Z +9e1f1e15dece1bdb146905b5fc4983e5 +2010-12-05T14:09:40.231515Z +161 +vnikic + + + + + + + + + + + + + + + + + + + + + +8629 + +SimpleHtmlSerializer.java +file + + + + +2011-08-31T14:45:35.427737Z +889d9ba79cdafd6c8a411ead6e30dbfd +2010-12-01T22:51:19.417216Z +156 +vnikic + + + + + + + + + + + + + + + + + + + + + +2751 + +DoctypeToken.java +file + + + + +2011-08-31T14:45:35.427737Z +6e52b759162d2933060a940a2b5ff634 +2010-12-21T08:28:05.290712Z +179 +vnikic + + + + + + + + + + + + + + + + + + + + + +4035 + +Serializer.java +file + + + + +2011-08-31T14:45:35.427737Z +5e1381be9cd9fa61dd6405e8394170c9 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +10260 + +DomSerializer.java +file + + + + +2011-08-31T14:45:35.427737Z +8f890cdb52a1c339c2977fc4d8b974f6 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +5413 + +HtmlNode.java +file + + + + +2011-08-31T14:45:35.427737Z +067e52b6083d4bd597ddc323f531522e +2010-12-01T09:23:45.795391Z +152 +vnikic + + + + + + + + + + + + + + + + + + + + + +125 + +XPather.java +file + + + + +2011-08-31T14:45:35.428737Z +25786cafc7f001bf695f4fceac7df06d +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +24519 + +TagToken.java +file + + + + +2011-08-31T14:45:35.428737Z +511fbc816a5d567892433118990654bb +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +2257 + +ConfigFileTagProvider.java +file + + + + +2011-08-31T14:45:35.428737Z +dcee84bad8a189d00b9b9c039b7d34eb +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +11483 + +SpecialEntity.java +file + + + + +2011-08-31T14:45:35.429737Z +6826cf4147ee955a4e27c6ac0a47f7dc +2010-11-26T09:16:12.760032Z +132 +vnikic + + + + + + + + + + + + + + + + + + + + + +12437 + +HtmlCleanerException.java +file + + + + +2011-08-31T14:45:35.428737Z +e7479da955f4e6460e3f9a6c55256c9b +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +2295 + +ContentNode.java +file + + + + +2011-08-31T14:45:35.429737Z +4f8335193403a67f7f060bea7fbfdb63 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +2531 + +JDomSerializer.java +file + + + + +2011-08-31T14:45:35.429737Z +a4a07bfddd45b773f38553913f823459 +2010-12-28T08:38:07.990619Z +182 +vnikic + + + + + + + + + + + + + + + + + + + + + +6068 + +CleanerProperties.java +file + + + + +2011-08-31T14:45:35.429737Z +b656161cd2cfc83a2ed1f4470040ac97 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +8665 + +CommandLine.java +file + + + + +2011-08-31T14:45:35.430737Z +816cd370c1ac8b65055c05309c0ccf38 +2010-12-21T13:36:16.171444Z +180 +vnikic + + + + + + + + + + + + + + + + + + + + + +14541 + +TagInfo.java +file + + + + +2011-08-31T14:45:35.430737Z +a6961057ccec3b35ca9032a722c34fee +2010-12-21T08:28:05.290712Z +179 +vnikic + + + + + + + + + + + + + + + + + + + + + +13538 + +XPatherException.java +file + + + + +2011-08-31T14:45:35.430737Z +76fb4897ec534c6715a873bc3d61f104 +2010-12-21T08:24:40.069639Z +178 +vnikic + + + + + + + + + + + + + + + + + + + + + +2289 + +HtmlSerializer.java +file + + + + +2011-08-31T14:45:35.430737Z +2b6f73b881b1a5063b397ca2db13846b +2010-12-05T14:09:40.231515Z +161 +vnikic + + + + + + + + + + + + + + + + + + + + + +8872 + +HtmlCleaner.java +file + + + + +2011-08-31T14:45:35.430737Z +1190145da23fcc0ca74b5b3baa5142f4 +2010-12-28T08:38:07.990619Z +182 +vnikic + + + + + + + + + + + + + + + + + + + + + +34203 + diff --git a/src/org/htmlcleaner/.svn/text-base/BaseToken.java.svn-base b/src/org/htmlcleaner/.svn/text-base/BaseToken.java.svn-base new file mode 100644 index 0000000..63bff10 --- /dev/null +++ b/src/org/htmlcleaner/.svn/text-base/BaseToken.java.svn-base @@ -0,0 +1,52 @@ +/* Copyright (c) 2006-2007, Vladimir Nikic + All rights reserved. + + Redistribution and use of this software in source and binary forms, + with or without modification, are permitted provided that the following + conditions are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + + * The name of HtmlCleaner may not be used to endorse or promote + products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + You can contact Vladimir Nikic by sending e-mail to + nikic_vladimir@yahoo.com. Please include the word "HtmlCleaner" in the + subject line. +*/ + +package org.htmlcleaner; + +import java.io.IOException; +import java.io.Writer; + +/** + *

+ * Base token interface. Tokens are individual entities recognized by HTML parser. + *

+ */ +public interface BaseToken { + + public void serialize(Serializer serializer, Writer writer) throws IOException; + +} diff --git a/src/org/htmlcleaner/.svn/text-base/BrowserCompactXmlSerializer.java.svn-base b/src/org/htmlcleaner/.svn/text-base/BrowserCompactXmlSerializer.java.svn-base new file mode 100644 index 0000000..91fa360 --- /dev/null +++ b/src/org/htmlcleaner/.svn/text-base/BrowserCompactXmlSerializer.java.svn-base @@ -0,0 +1,102 @@ +/* Copyright (c) 2006-2007, Vladimir Nikic + All rights reserved. + + Redistribution and use of this software in source and binary forms, + with or without modification, are permitted provided that the following + conditions are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + + * The name of HtmlCleaner may not be used to endorse or promote + products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + You can contact Vladimir Nikic by sending e-mail to + nikic_vladimir@yahoo.com. Please include the word "HtmlCleaner" in the + subject line. +*/ + +package org.htmlcleaner; + +import java.io.Writer; +import java.io.IOException; +import java.util.List; +import java.util.ListIterator; + +/** + *

+ * Broswer compact XML serializer - creates resulting XML by stripping whitespaces wherever possible, + * but preserving single whitespace where at least one exists. This behaviour is well suited + * for web-browsers, which usualy treat multiple whitespaces as single one, but make diffrence + * between single whitespace and empty text. + *

+ */ +public class BrowserCompactXmlSerializer extends XmlSerializer { + + public BrowserCompactXmlSerializer(CleanerProperties props) { + super(props); + } + + protected void serialize(TagNode tagNode, Writer writer) throws IOException { + serializeOpenTag(tagNode, writer, false); + + List tagChildren = tagNode.getChildren(); + if ( !isMinimizedTagSyntax(tagNode) ) { + ListIterator childrenIt = tagChildren.listIterator(); + while ( childrenIt.hasNext() ) { + Object item = childrenIt.next(); + if (item instanceof ContentNode) { + String content = item.toString(); + boolean startsWithSpace = content.length() > 0 && Character.isWhitespace( content.charAt(0) ); + boolean endsWithSpace = content.length() > 1 && Character.isWhitespace( content.charAt(content.length() - 1) ); + content = dontEscape(tagNode) ? content.trim().replaceAll("]]>", "]]>") : escapeXml(content.trim()); + + if (startsWithSpace) { + writer.write(' '); + } + + if (content.length() != 0) { + writer.write(content); + if (endsWithSpace) { + writer.write(' '); + } + } + + if (childrenIt.hasNext()) { + if ( !Utils.isWhitespaceString(childrenIt.next()) ) { + writer.write("\n"); + } + childrenIt.previous(); + } + } else if (item instanceof CommentNode) { + String content = ((CommentNode) item).getCommentedContent().trim(); + writer.write(content); + } else if (item instanceof BaseToken) { + ((BaseToken)item).serialize(this, writer); + } + } + + serializeEndTag(tagNode, writer, false); + } + } + +} \ No newline at end of file diff --git a/src/org/htmlcleaner/.svn/text-base/CleanerProperties.java.svn-base b/src/org/htmlcleaner/.svn/text-base/CleanerProperties.java.svn-base new file mode 100644 index 0000000..2f54823 --- /dev/null +++ b/src/org/htmlcleaner/.svn/text-base/CleanerProperties.java.svn-base @@ -0,0 +1,260 @@ +/* Copyright (c) 2006-2007, Vladimir Nikic + All rights reserved. + + Redistribution and use of this software in source and binary forms, + with or without modification, are permitted provided that the following + conditions are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + + * The name of HtmlCleaner may not be used to endorse or promote + products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + You can contact Vladimir Nikic by sending e-mail to + nikic_vladimir@yahoo.com. Please include the word "HtmlCleaner" in the + subject line. +*/ + +package org.htmlcleaner; + +/** + * Properties defining cleaner's behaviour + */ +public class CleanerProperties { + + public static final String BOOL_ATT_SELF = "self"; + public static final String BOOL_ATT_EMPTY = "empty"; + public static final String BOOL_ATT_TRUE = "true"; + + ITagInfoProvider tagInfoProvider = null; + + boolean advancedXmlEscape = true; + boolean transResCharsToNCR = false; + boolean useCdataForScriptAndStyle = true; + boolean translateSpecialEntities = true; + boolean transSpecialEntitiesToNCR = false; + boolean recognizeUnicodeChars = true; + boolean omitUnknownTags = false; + boolean treatUnknownTagsAsContent = false; + boolean omitDeprecatedTags = false; + boolean treatDeprecatedTagsAsContent = false; + boolean omitComments = false; + boolean omitXmlDeclaration = false; + boolean omitDoctypeDeclaration = true; + boolean omitHtmlEnvelope = false; + boolean useEmptyElementTags = true; + boolean allowMultiWordAttributes = true; + boolean allowHtmlInsideAttributes = false; + boolean ignoreQuestAndExclam = true; + boolean namespacesAware = true; + String hyphenReplacementInComment = "="; + String pruneTags = null; + String booleanAttributeValues = BOOL_ATT_SELF; + + public ITagInfoProvider getTagInfoProvider() { + return tagInfoProvider; + } + + public boolean isAdvancedXmlEscape() { + return advancedXmlEscape; + } + + public void setAdvancedXmlEscape(boolean advancedXmlEscape) { + this.advancedXmlEscape = advancedXmlEscape; + } + + public boolean isTransResCharsToNCR() { + return transResCharsToNCR; + } + + public void setTransResCharsToNCR(boolean transResCharsToNCR) { + this.transResCharsToNCR = transResCharsToNCR; + } + + public boolean isUseCdataForScriptAndStyle() { + return useCdataForScriptAndStyle; + } + + public void setUseCdataForScriptAndStyle(boolean useCdataForScriptAndStyle) { + this.useCdataForScriptAndStyle = useCdataForScriptAndStyle; + } + + public boolean isTranslateSpecialEntities() { + return translateSpecialEntities; + } + + public void setTranslateSpecialEntities(boolean translateSpecialEntities) { + this.translateSpecialEntities = translateSpecialEntities; + } + + public boolean isTransSpecialEntitiesToNCR() { + return transSpecialEntitiesToNCR; + } + + public void setTransSpecialEntitiesToNCR(boolean transSpecialEntitiesToNCR) { + this.transSpecialEntitiesToNCR = transSpecialEntitiesToNCR; + } + + public boolean isRecognizeUnicodeChars() { + return recognizeUnicodeChars; + } + + public void setRecognizeUnicodeChars(boolean recognizeUnicodeChars) { + this.recognizeUnicodeChars = recognizeUnicodeChars; + } + + public boolean isOmitUnknownTags() { + return omitUnknownTags; + } + + public void setOmitUnknownTags(boolean omitUnknownTags) { + this.omitUnknownTags = omitUnknownTags; + } + + public boolean isTreatUnknownTagsAsContent() { + return treatUnknownTagsAsContent; + } + + public void setTreatUnknownTagsAsContent(boolean treatUnknownTagsAsContent) { + this.treatUnknownTagsAsContent = treatUnknownTagsAsContent; + } + + public boolean isOmitDeprecatedTags() { + return omitDeprecatedTags; + } + + public void setOmitDeprecatedTags(boolean omitDeprecatedTags) { + this.omitDeprecatedTags = omitDeprecatedTags; + } + + public boolean isTreatDeprecatedTagsAsContent() { + return treatDeprecatedTagsAsContent; + } + + public void setTreatDeprecatedTagsAsContent(boolean treatDeprecatedTagsAsContent) { + this.treatDeprecatedTagsAsContent = treatDeprecatedTagsAsContent; + } + + public boolean isOmitComments() { + return omitComments; + } + + public void setOmitComments(boolean omitComments) { + this.omitComments = omitComments; + } + + public boolean isOmitXmlDeclaration() { + return omitXmlDeclaration; + } + + public void setOmitXmlDeclaration(boolean omitXmlDeclaration) { + this.omitXmlDeclaration = omitXmlDeclaration; + } + + public boolean isOmitDoctypeDeclaration() { + return omitDoctypeDeclaration; + } + + public void setOmitDoctypeDeclaration(boolean omitDoctypeDeclaration) { + this.omitDoctypeDeclaration = omitDoctypeDeclaration; + } + + public boolean isOmitHtmlEnvelope() { + return omitHtmlEnvelope; + } + + public void setOmitHtmlEnvelope(boolean omitHtmlEnvelope) { + this.omitHtmlEnvelope = omitHtmlEnvelope; + } + + public boolean isUseEmptyElementTags() { + return useEmptyElementTags; + } + + public void setUseEmptyElementTags(boolean useEmptyElementTags) { + this.useEmptyElementTags = useEmptyElementTags; + } + + public boolean isAllowMultiWordAttributes() { + return allowMultiWordAttributes; + } + + public void setAllowMultiWordAttributes(boolean allowMultiWordAttributes) { + this.allowMultiWordAttributes = allowMultiWordAttributes; + } + + public boolean isAllowHtmlInsideAttributes() { + return allowHtmlInsideAttributes; + } + + public void setAllowHtmlInsideAttributes(boolean allowHtmlInsideAttributes) { + this.allowHtmlInsideAttributes = allowHtmlInsideAttributes; + } + + public boolean isIgnoreQuestAndExclam() { + return ignoreQuestAndExclam; + } + + public void setIgnoreQuestAndExclam(boolean ignoreQuestAndExclam) { + this.ignoreQuestAndExclam = ignoreQuestAndExclam; + } + + public boolean isNamespacesAware() { + return namespacesAware; + } + + public void setNamespacesAware(boolean namespacesAware) { + this.namespacesAware = namespacesAware; + } + + public String getHyphenReplacementInComment() { + return hyphenReplacementInComment; + } + + public void setHyphenReplacementInComment(String hyphenReplacementInComment) { + this.hyphenReplacementInComment = hyphenReplacementInComment; + } + + public String getPruneTags() { + return pruneTags; + } + + public void setPruneTags(String pruneTags) { + this.pruneTags = pruneTags; + } + + public String getBooleanAttributeValues() { + return booleanAttributeValues; + } + + public void setBooleanAttributeValues(String booleanAttributeValues) { + if ( BOOL_ATT_SELF.equalsIgnoreCase(booleanAttributeValues) || + BOOL_ATT_EMPTY.equalsIgnoreCase(booleanAttributeValues) || + BOOL_ATT_TRUE.equalsIgnoreCase(booleanAttributeValues) ) { + this.booleanAttributeValues = booleanAttributeValues.toLowerCase(); + } else { + this.booleanAttributeValues = BOOL_ATT_SELF; + } + } + +} \ No newline at end of file diff --git a/src/org/htmlcleaner/.svn/text-base/CleanerTransformations.java.svn-base b/src/org/htmlcleaner/.svn/text-base/CleanerTransformations.java.svn-base new file mode 100644 index 0000000..bab554c --- /dev/null +++ b/src/org/htmlcleaner/.svn/text-base/CleanerTransformations.java.svn-base @@ -0,0 +1,68 @@ +/* Copyright (c) 2006-2007, Vladimir Nikic + All rights reserved. + + Redistribution and use of this software in source and binary forms, + with or without modification, are permitted provided that the following + conditions are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + + * The name of HtmlCleaner may not be used to endorse or promote + products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + You can contact Vladimir Nikic by sending e-mail to + nikic_vladimir@yahoo.com. Please include the word "HtmlCleaner" in the + subject line. +*/ + +package org.htmlcleaner; + +import java.util.HashMap; +import java.util.Map; + +/** + * Contains transformation collection. + */ +public class CleanerTransformations { + + private Map mappings = new HashMap(); + + /** + * Adds specified tag transformation to the collection. + * @param tagTransformation + */ + public void addTransformation(TagTransformation tagTransformation) { + if (tagTransformation != null) { + mappings.put( tagTransformation.getSourceTag(), tagTransformation ); + } + } + + public boolean hasTransformationForTag(String tagName) { + return tagName != null && mappings.containsKey(tagName.toLowerCase()); + } + + public TagTransformation getTransformation(String tagName) { + return tagName != null ? (TagTransformation) mappings.get(tagName.toLowerCase()) : null; + } + +} \ No newline at end of file diff --git a/src/org/htmlcleaner/.svn/text-base/CommandLine.java.svn-base b/src/org/htmlcleaner/.svn/text-base/CommandLine.java.svn-base new file mode 100644 index 0000000..b4e790f --- /dev/null +++ b/src/org/htmlcleaner/.svn/text-base/CommandLine.java.svn-base @@ -0,0 +1,326 @@ +/* Copyright (c) 2006-2007, Vladimir Nikic + All rights reserved. + + Redistribution and use of this software in source and binary forms, + with or without modification, are permitted provided that the following + conditions are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + + * The name of HtmlCleaner may not be used to endorse or promote + products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + You can contact Vladimir Nikic by sending e-mail to + nikic_vladimir@yahoo.com. Please include the word "HtmlCleaner" in the + subject line. +*/ + +package org.htmlcleaner; + +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.io.FileOutputStream; +import java.net.URL; +import java.util.Map; +import java.util.TreeMap; +import java.util.Iterator; + +/** + *

Command line usage class.

+ */ +public class CommandLine { + + private static String getArgValue(String[] args, String name) { + for (int i = 0; i < args.length; i++) { + String curr = args[i]; + int eqIndex = curr.indexOf('='); + if (eqIndex >= 0) { + String argName = curr.substring(0, eqIndex).trim(); + String argValue = curr.substring(eqIndex+1).trim(); + + if (argName.toLowerCase().startsWith(name.toLowerCase())) { + return argValue; + } + } + } + + return ""; + } + + private static boolean toBoolean(String s) { + return s != null && ( "on".equalsIgnoreCase(s) || "true".equalsIgnoreCase(s) || "yes".equalsIgnoreCase(s) ); + } + + public static void main(String[] args) throws IOException, XPatherException { + String source = getArgValue(args, "src"); + if ( "".equals(source) ) { + System.err.println("Usage: java -jar htmlcleanerXX.jar src = [incharset = ] " + + "[dest = ] [outcharset = ] [taginfofile=] [options...]"); + System.err.println(""); + System.err.println("where options include:"); + System.err.println(" outputtype=simple* | compact | browser-compact | pretty | htmlsimple | htmlcompact | htmlpretty"); + System.err.println(" advancedxmlescape=true* | false"); + System.err.println(" transrescharstoncr=true | false*"); + System.err.println(" usecdata=true* | false"); + System.err.println(" specialentities=true* | false"); + System.err.println(" transspecialentitiestoncr=true | false*"); + System.err.println(" unicodechars=true* | false"); + System.err.println(" omitunknowntags=true | false*"); + System.err.println(" treatunknowntagsascontent=true | false*"); + System.err.println(" omitdeprtags=true | false*"); + System.err.println(" treatdeprtagsascontent=true | false*"); + System.err.println(" omitcomments=true | false*"); + System.err.println(" omitxmldecl=true | false*"); + System.err.println(" omitdoctypedecl=true* | false"); + System.err.println(" useemptyelementtags=true* | false"); + System.err.println(" allowmultiwordattributes=true* | false"); + System.err.println(" allowhtmlinsideattributes=true | false*"); + System.err.println(" ignoreqe=true* | false"); + System.err.println(" namespacesaware=true* | false"); + System.err.println(" hyphenreplacement= [=]"); + System.err.println(" prunetags= []"); + System.err.println(" booleanatts=self* | empty | true"); + System.err.println(" nodebyxpath="); + System.err.println(" omitenvelope=true | false*"); + System.err.println(" t:[=[,]]"); + System.err.println(" t:.[=