Java 为值解析html内容
调用后,我收到一个Http响应作为Html字符串,我想刮取Java 为值解析html内容,java,Java,调用后,我收到一个Http响应作为Html字符串,我想刮取ReportViewer1变量中存储的特定值 <html> .................... ........... <script type="text/javascript"> var ReportViewer1 = new ReportViewer('ReportViewer1', 'ReportViewer1_ReportToo
ReportViewer1
变量中存储的特定值
<html>
....................
...........
<script type="text/javascript">
var ReportViewer1 = new ReportViewer('ReportViewer1', 'ReportViewer1_ReportToolbar', 'ReportViewer1_ReportArea_WaitControl', 'ReportViewer1_ReportArea_ReportCell', 'ReportViewer1_ReportArea_PreviewFrame', 'ReportViewer1_ParametersAreaCell', 'ReportViewer1_ReportArea_ErrorControl', 'ReportViewer1_ReportArea_ErrorLabel', 'ReportViewer1_CP', '/app/Telerik.ReportViewer.axd', 'a90a0d41efa6429eadfefa42fc529de1', 'Percent', '100', '', 'ReportViewer1_EditorPlaceholder', 'ReportViewer1_CalendarFrame', 'ReportViewer1_ReportArea_DocumentMapCell', {
CurrentPageToolTip: 'STR_TELERIK_MSG_CUR_PAGE_TOOL_TIP',
ExportButtonText: 'Export',
ExportToolTip: 'Export',
ExportSelectFormatText: 'Export to the selected format',
FirstPageToolTip: 'First page',
LabelOf: 'of',
LastPageToolTip: 'Last Page',
ProcessingReportMessage: 'Generating report...',
NoPageToDisplay: 'No page to display.',
NextPageToolTip: 'Next page',
ParametersToolTip: 'Click to close parameters area|Click to open parameters area',
DocumentMapToolTip: 'Hide document map|Show document map',
PreviousPageToolTip: 'Previous page',
TogglePageLayoutToolTip: 'Switch to interactive view|Switch to print preview',
SessionHasExpiredError: 'Session has expired.',
SessionHasExpiredMessage: 'Please, refresh the page.',
PrintToolTip: 'Print',
RefreshToolTip: 'Refresh',
NavigateBackToolTip: 'Navigate back',
NavigateForwardToolTip: 'Navigate forward',
ReportParametersSelectAllText: '<select all>',
ReportParametersSelectAValueText: '<select a value>',
ReportParametersInvalidValueText: 'Invalid value.',
ReportParametersNoValueText: 'Value required.',
ReportParametersNullText: 'NULL',
ReportParametersPreviewButtonText: 'Preview',
ReportParametersFalseValueLabel: 'False',
ReportParametersInputDataError: 'Missing or invalid parameter value. Please input valid data for all parameters.',
ReportParametersTrueValueLabel: 'True',
MissingReportSource: 'The source of the report definition has not been specified.',
ZoomToPageWidth: 'Page Width',
ZoomToWholePage: 'Full Page'
}, 'ReportViewer1_ReportArea_ReportArea', 'ReportViewer1_ReportArea_SplitterCell', 'ReportViewer1_ReportArea_DocumentMapCell', true, true, 'PDF', 'ReportViewer1_RSID', true);
</script>
...................
...................
</html>
使用Java解析此值的最佳方法是什么?我会像读取大多数文件一样一次读取一行文本。因为格式总是相同的,所以您可以查找以字符“var ReportViewer1”开头的行。然后您就知道找到了所需的行。您可能需要去除一些空白,尽管它也将始终使用相同的空白进行格式化(具体取决于您) 有了行后,使用String.split()方法将该行拆分为数组。有很好的分隔符可以分割。。。“,”或“或”,“。。。再次,看看什么最适合你 测试“/app/Telerik.ReportViewer.axd”的拆分行部件。。。拆分数组的下一个成员将是您要查找的值 同样,格式将始终相同,因此您可以依靠它来查找变量。当然,研究html文本以确保它在您正在调查的行中始终遵循相同的格式,但是看看它,我认为它可能会遵循相同的格式
再次,找到你的线路。。。在分隔符上拆分它。。。并使用一些逻辑在拆分行部分中查找您要查找的元素。使用字符串类解析HTML
public class HtmlParser {
public static void main(String args[]){
String result = getValuesProp(html);
System.out.println("Result: "+ result);
}
static String PIVOT = "Telerik.ReportViewer.axd";
public static String getValuesProp(String json) {
String subString;
int i = json.indexOf(PIVOT);
i+= PIVOT.length();
//', chars
i+=2;
subString = json.substring(i);
i = subString.indexOf("'");
i++;
subString = subString.substring(i);
i = subString.indexOf("'");
subString = subString.substring(0,i);
return subString;
}
static String html ="<html>\n" +
"\n" +
"<script type=\"text/javascript\">\n" +
" var ReportViewer1 = new ReportViewer('ReportViewer1', 'ReportViewer1_ReportToolbar', 'ReportViewer1_ReportArea_WaitControl', 'ReportViewer1_ReportArea_ReportCell', 'ReportViewer1_ReportArea_PreviewFrame', 'ReportViewer1_ParametersAreaCell', 'ReportViewer1_ReportArea_ErrorControl', 'ReportViewer1_ReportArea_ErrorLabel', 'ReportViewer1_CP', '/app/Telerik.ReportViewer.axd', 'a90a0d41efa6429eadfefa42fc529de1', 'Percent', '100', '', 'ReportViewer1_EditorPlaceholder', 'ReportViewer1_CalendarFrame', 'ReportViewer1_ReportArea_DocumentMapCell', {\n" +
" CurrentPageToolTip: 'STR_TELERIK_MSG_CUR_PAGE_TOOL_TIP',\n" +
" ExportButtonText: 'Export',\n" +
" ExportToolTip: 'Export',\n" +
" ExportSelectFormatText: 'Export to the selected format',\n" +
" FirstPageToolTip: 'First page',\n" +
" LabelOf: 'of',\n" +
" LastPageToolTip: 'Last Page',\n" +
" ProcessingReportMessage: 'Generating report...',\n" +
" NoPageToDisplay: 'No page to display.',\n" +
" NextPageToolTip: 'Next page',\n" +
" ParametersToolTip: 'Click to close parameters area|Click to open parameters area',\n" +
" DocumentMapToolTip: 'Hide document map|Show document map',\n" +
" PreviousPageToolTip: 'Previous page',\n" +
" TogglePageLayoutToolTip: 'Switch to interactive view|Switch to print preview',\n" +
" SessionHasExpiredError: 'Session has expired.',\n" +
" SessionHasExpiredMessage: 'Please, refresh the page.',\n" +
" PrintToolTip: 'Print',\n" +
" RefreshToolTip: 'Refresh',\n" +
" NavigateBackToolTip: 'Navigate back',\n" +
" NavigateForwardToolTip: 'Navigate forward',\n" +
" ReportParametersSelectAllText: '<select all>',\n" +
" ReportParametersSelectAValueText: '<select a value>',\n" +
" ReportParametersInvalidValueText: 'Invalid value.',\n" +
" ReportParametersNoValueText: 'Value required.',\n" +
" ReportParametersNullText: 'NULL',\n" +
" ReportParametersPreviewButtonText: 'Preview',\n" +
" ReportParametersFalseValueLabel: 'False',\n" +
" ReportParametersInputDataError: 'Missing or invalid parameter value. Please input valid data for all parameters.',\n" +
" ReportParametersTrueValueLabel: 'True',\n" +
" MissingReportSource: 'The source of the report definition has not been specified.',\n" +
" ZoomToPageWidth: 'Page Width',\n" +
" ZoomToWholePage: 'Full Page'\n" +
" }, 'ReportViewer1_ReportArea_ReportArea', 'ReportViewer1_ReportArea_SplitterCell', 'ReportViewer1_ReportArea_DocumentMapCell', true, true, 'PDF', 'ReportViewer1_RSID', true);\n" +
" </script>\n" +
"\n" +
"</html>";
}
公共类HTMLPasser{
公共静态void main(字符串参数[]){
字符串结果=GetValuesPro(html);
System.out.println(“结果:+Result”);
}
静态字符串PIVOT=“Telerik.ReportViewer.axd”;
公共静态字符串GetValuesPro(字符串json){
字符串子串;
inti=json.indexOf(PIVOT);
i+=PIVOT.length();
//”“查理
i+=2;
subString=json.subString(i);
i=子字符串。indexOf(“”);
i++;
子串=子串。子串(i);
i=子字符串。indexOf(“”);
子字符串=子字符串。子字符串(0,i);
返回子串;
}
静态字符串html=“\n”+
“\n”+
“\n”+
“var ReportViewer1=新的ReportViewer(‘ReportViewer1’、‘ReportViewer1_ReportToolbar’、‘ReportViewer1_ReportArea_WaitControl’、‘ReportViewer1_ReportArea_ReportCell’、‘ReportViewer1_ReportArea_PreviewFrame’、‘ReportViewer1_ReportArea_ErrorControl’、‘ReportViewer1_ReportArea_ErrorLabel’、‘ReportViewer1_CP’、‘/app/Telerik.ReportViewer.axd’、‘a90a0d41efA6429EADFAF42FC529DE1、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、+
“当前页面工具提示:'STR\u TELERIK\u MSG\u CUR\u PAGE\u TOOL\u TIP',\n”+
ExportButtonText:'导出',\n+
ExportToolTip:'导出',\n+
ExportSelectFormatText:'导出为所选格式',\n+
FirstPageToolTip:'第一页',\n+
LabelOf:'of',\n+
LastPageToolTip:'最后一页',\n+
正在处理ReportMessage:'正在生成报告…',\n+
NoPageToDisplay:'没有要显示的页面',\n+
“NextPagetToolTip:'下一页',\n”+
“ParametersToOptip:'单击以关闭参数区域|单击以打开参数区域',\n”+
DocumentMapToolTip:'隐藏文档映射|显示文档映射',\n+
“PreviousPageToolTip:'上一页',\n”+
“TogglePageLayoutToolTip:'切换到交互式视图|切换到打印预览',\n”+
SessionHasExpiredError:'会话已过期',\n+
SessionHasExpiredMessage:'请刷新页面',\n+
打印工具提示:“打印”,\n+
刷新工具提示:“刷新”,\n+
NavigateBackToolTip:'向后导航',\n+
NavigateForward工具提示:“向前导航”,\n+
“报告参数SelectAllText:”“\n”+
ReportParametersSelectAValueText:“”,\n+
ReportParametersInvalidValueText:'无效值',\n+
ReportParametersNoValueText:'需要值',\n+
ReportParametersAllText:'NULL',\n+
ReportParametersPreviewButtonText:“预览”,\n+
ReportParametersFalseValueLabel:'False',\n+
ReportParametersInputDataError:'缺少参数值或参数值无效。请为所有参数输入有效数据。',\n+
ReportParametersTrueValueLabel:'True',\n+
MissingReportSource:'尚未指定报告定义的源。',\n+
ZoomToPageWidth:'页面宽度',\n+
ZoomToWholePage:'整页'\n+
“},'ReportViewer1_ReportArea_ReportArea_ReportArea','ReportViewer1_ReportArea_SplitterCell','ReportViewer1_ReportArea_DocumentMapCell',true,true,true,'PDF','ReportViewer1_RSID',true);\n”+
“\n”+
“\n”+
"";
}
如果您只是想摆脱a90a0d41efa6429eadfefa42fc529de1
,那么您可以使用字符串。replace(,'a90a0d41efa6429eadfafa2fc529de1“
,”)命令。LOL我正在尝试提取此变量:)您在问题中说了“scrap”,所以我不确定您想用它做什么。
public class HtmlParser {
public static void main(String args[]){
String result = getValuesProp(html);
System.out.println("Result: "+ result);
}
static String PIVOT = "Telerik.ReportViewer.axd";
public static String getValuesProp(String json) {
String subString;
int i = json.indexOf(PIVOT);
i+= PIVOT.length();
//', chars
i+=2;
subString = json.substring(i);
i = subString.indexOf("'");
i++;
subString = subString.substring(i);
i = subString.indexOf("'");
subString = subString.substring(0,i);
return subString;
}
static String html ="<html>\n" +
"\n" +
"<script type=\"text/javascript\">\n" +
" var ReportViewer1 = new ReportViewer('ReportViewer1', 'ReportViewer1_ReportToolbar', 'ReportViewer1_ReportArea_WaitControl', 'ReportViewer1_ReportArea_ReportCell', 'ReportViewer1_ReportArea_PreviewFrame', 'ReportViewer1_ParametersAreaCell', 'ReportViewer1_ReportArea_ErrorControl', 'ReportViewer1_ReportArea_ErrorLabel', 'ReportViewer1_CP', '/app/Telerik.ReportViewer.axd', 'a90a0d41efa6429eadfefa42fc529de1', 'Percent', '100', '', 'ReportViewer1_EditorPlaceholder', 'ReportViewer1_CalendarFrame', 'ReportViewer1_ReportArea_DocumentMapCell', {\n" +
" CurrentPageToolTip: 'STR_TELERIK_MSG_CUR_PAGE_TOOL_TIP',\n" +
" ExportButtonText: 'Export',\n" +
" ExportToolTip: 'Export',\n" +
" ExportSelectFormatText: 'Export to the selected format',\n" +
" FirstPageToolTip: 'First page',\n" +
" LabelOf: 'of',\n" +
" LastPageToolTip: 'Last Page',\n" +
" ProcessingReportMessage: 'Generating report...',\n" +
" NoPageToDisplay: 'No page to display.',\n" +
" NextPageToolTip: 'Next page',\n" +
" ParametersToolTip: 'Click to close parameters area|Click to open parameters area',\n" +
" DocumentMapToolTip: 'Hide document map|Show document map',\n" +
" PreviousPageToolTip: 'Previous page',\n" +
" TogglePageLayoutToolTip: 'Switch to interactive view|Switch to print preview',\n" +
" SessionHasExpiredError: 'Session has expired.',\n" +
" SessionHasExpiredMessage: 'Please, refresh the page.',\n" +
" PrintToolTip: 'Print',\n" +
" RefreshToolTip: 'Refresh',\n" +
" NavigateBackToolTip: 'Navigate back',\n" +
" NavigateForwardToolTip: 'Navigate forward',\n" +
" ReportParametersSelectAllText: '<select all>',\n" +
" ReportParametersSelectAValueText: '<select a value>',\n" +
" ReportParametersInvalidValueText: 'Invalid value.',\n" +
" ReportParametersNoValueText: 'Value required.',\n" +
" ReportParametersNullText: 'NULL',\n" +
" ReportParametersPreviewButtonText: 'Preview',\n" +
" ReportParametersFalseValueLabel: 'False',\n" +
" ReportParametersInputDataError: 'Missing or invalid parameter value. Please input valid data for all parameters.',\n" +
" ReportParametersTrueValueLabel: 'True',\n" +
" MissingReportSource: 'The source of the report definition has not been specified.',\n" +
" ZoomToPageWidth: 'Page Width',\n" +
" ZoomToWholePage: 'Full Page'\n" +
" }, 'ReportViewer1_ReportArea_ReportArea', 'ReportViewer1_ReportArea_SplitterCell', 'ReportViewer1_ReportArea_DocumentMapCell', true, true, 'PDF', 'ReportViewer1_RSID', true);\n" +
" </script>\n" +
"\n" +
"</html>";
}