Commit 4fec8383 authored by 黄奎's avatar 黄奎

页面修改

parent f68f4aa8
......@@ -4,6 +4,7 @@ using System.Data;
using System.Text;
using System.Text.RegularExpressions;
using System.Linq;
using Edu.Common.Plugin;
namespace Edu.Common.Data
{
......@@ -114,7 +115,7 @@ namespace Edu.Common.Data
public static List<ImportModel> GetWordQuestionData(string filePath)
{
List<ImportModel> list = new List<ImportModel>();
var questionList = Common.Plugin.WordHelper.GetWordData(filePath,out List<string> htmlList);
var questionList = Common.Plugin.WordHelper.GetWordData(filePath,out List<QuestionTitleData> htmlList);
if (questionList != null && questionList.Count > 0)
{
foreach (var rootItem in questionList)
......@@ -168,7 +169,7 @@ namespace Edu.Common.Data
/// </summary>
/// <param name="item"></param>
/// <param name="model"></param>
private static void AnalysisQuestionTitle(string item, ImportModel model,List<string> htmlList)
private static void AnalysisQuestionTitle(string item, ImportModel model,List<QuestionTitleData> htmlList)
{
string pattern = @"\r\n";
var tempArray = Regex.Split(item, pattern);
......@@ -176,16 +177,44 @@ namespace Edu.Common.Data
if (tempArray != null && tempArray.Length > 0)
{
string strTitle = tempArray[0].Trim();
if (htmlList != null && htmlList.Count > 0)
{
foreach (var hItem in htmlList)
{
if (strTitle.Contains(hItem))
try
{
if (strTitle.Contains(hItem.UnderLine))
{
foreach (var subItem in htmlList.Where(qitem => qitem.UnderLine == hItem.UnderLine))
{
if (subItem.BeforeAfter != null)
{
if (subItem.BeforeAfter.Count == 1)
{
if (strTitle.Contains(subItem.BeforeAfter[0]))
{
strTitle = strTitle.Replace(hItem.UnderLine, Common.ConvertHelper.GetSpanString(hItem.UnderLine));
}
}
else if (subItem.BeforeAfter.Count == 2)
{
if (strTitle.Contains(subItem.BeforeAfter[0]) || strTitle.Contains(subItem.BeforeAfter[1]))
{
strTitle = strTitle.Replace(hItem.UnderLine, Common.ConvertHelper.GetSpanString(hItem.UnderLine));
}
}
}
}
}
}
catch (Exception ex)
{
strTitle = strTitle.Replace(hItem, Common.ConvertHelper.GetSpanString(hItem));
throw new Exception();
}
}
}
model.QuestionTitle = strTitle;
foreach (var subItem in tempArray)
{
......@@ -534,7 +563,7 @@ namespace Edu.Common.Data
/// </summary>
/// <param name="questionStr"></param>
/// <param name="model"></param>
private static void AnalysisReadingQuestion(string questionStr, ImportModel model,List<string> htmlList)
private static void AnalysisReadingQuestion(string questionStr, ImportModel model,List<QuestionTitleData> htmlList)
{
string[] tempArray = null;
//“\r\n”开始+“1234567890”出现1次到多次+“、或.”结尾
......
......@@ -22,7 +22,7 @@ namespace Edu.Common.Plugin
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public static List<QuestionWordData> GetWordData(string filePath,out List<string> htmlList)
public static List<QuestionWordData> GetWordData(string filePath,out List<QuestionTitleData> htmlList)
{
List<QuestionWordData> list = new List<QuestionWordData>();
Spire.Doc.Document document = new Spire.Doc.Document();
......@@ -35,28 +35,60 @@ namespace Edu.Common.Plugin
}
string htmlName = tempPath + DateTime.Now.Ticks + ".html";
document.SaveToFile(htmlName, FileFormat.Html);
htmlList = new List<string>();
htmlList = new List<QuestionTitleData>();
try
{
Stream myStream = new FileStream(htmlName, FileMode.Open);
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");//若是格式为utf-8的需要将gb2312替换
StreamReader myStreamReader = new StreamReader(myStream, encode);
string strhtml = myStreamReader.ReadToEnd();
string htmlRule = @"<span[^>]+>([^<]+)</span>";
System.Text.RegularExpressions.MatchCollection matchCol = System.Text.RegularExpressions.Regex.Matches(strhtml, htmlRule);
foreach (var item in matchCol)
string htmlRule = @"<p.*?>(.*?)</p>";
MatchCollection p_matchs =Regex.Matches(strhtml, htmlRule);
foreach (var item in p_matchs)
{
if (item != null && !string.IsNullOrEmpty(item.ToString()) && item.ToString().Contains("underline"))
{
string newStr = Common.Plugin.HtmlHelper.StripHT(item.ToString());
if (!string.IsNullOrEmpty(newStr) && !htmlList.Contains(newStr))
string spanRule = @"<span[^>]+>([^<]+)</span>";
MatchCollection span_matchs= Regex.Matches(item.ToString(), spanRule);
string key = "";
List<string> contentList = new List<string>();
for (var i = 0; i < span_matchs.Count; i++)
{
htmlList.Add(newStr);
var subItem = span_matchs[i];
string newStr = Common.Plugin.HtmlHelper.StripHT(subItem.ToString());
if (subItem != null && !string.IsNullOrEmpty(subItem.ToString()) && subItem.ToString().Contains("underline"))
{
key = newStr;
if (i > 0)
{
string upContent = Common.Plugin.HtmlHelper.StripHT(span_matchs[i - 1].ToString());
if (!string.IsNullOrEmpty(upContent)&& upContent.Length>1)
{
contentList.Add(upContent.TrimStart('、'));
}
}
if ((i + 1) < span_matchs.Count)
{
string nextContent = Common.Plugin.HtmlHelper.StripHT(span_matchs[i + 1].ToString());
if (!string.IsNullOrEmpty(nextContent)&&nextContent.Length>1)
{
contentList.Add(nextContent.TrimStart('、'));
}
}
if (!string.IsNullOrEmpty(key) && contentList != null && contentList.Count > 0)
{
htmlList.Add(new QuestionTitleData()
{
UnderLine = key,
BeforeAfter = contentList
});
}
}
}
}
}
}
catch (Exception ex)
catch
{
}
......@@ -231,4 +263,20 @@ namespace Edu.Common.Plugin
/// </summary>
public List<string> QuestionList { get; set; }
}
/// <summary>
/// 替换标题下划线实体
/// </summary>
public class QuestionTitleData
{
/// <summary>
/// 下划线内容
/// </summary>
public string UnderLine { get; set; }
/// <summary>
/// 下划线内容前后文字
/// </summary>
public List<string> BeforeAfter { get; set; }
}
}
......@@ -108,7 +108,7 @@ namespace Edu.WebApi.Controllers.Course
{
newTitle = Regex.Replace(item.Title, str, "[图片]");
}
catch (Exception ex)
catch
{
newTitle = item.Title;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment