[feat] 支持民政部2024版行政区划,增加5个地区

This commit is contained in:
智能大石头 2025-05-27 18:41:47 +08:00
parent 003d441d40
commit 6f8a919a7a
2 changed files with 39 additions and 6 deletions

View File

@ -749,7 +749,7 @@ public partial class Area : Entity<Area>
// 分析数据
var ss = html[s..e].Split("<td", "</td>");
if (ss.Length > 4)
if (ss.Length >= 6)
{
var id = ss[3];
var p2 = id.LastIndexOf('>');
@ -765,6 +765,7 @@ public partial class Area : Entity<Area>
else
name = name[(p3 + 1)..];
}
name = name?.Trim().Trim('*').Trim();
if (!id.IsNullOrEmpty() && id.ToInt() > 10_00_00 && !name.IsNullOrEmpty())
{
@ -911,7 +912,8 @@ public partial class Area : Entity<Area>
{
//if (url.IsNullOrEmpty()) url = "http://www.mca.gov.cn/article/sj/xzqh/2020/2020/2020092500801.html";
//if (url.IsNullOrEmpty()) url = "https://www.mca.gov.cn/mzsj/xzqh/2022/202201xzqh.html";
if (url.IsNullOrEmpty()) url = "http://x.newlifex.com/202301xzqh.html";
//if (url.IsNullOrEmpty()) url = "http://x.newlifex.com/202301xzqh.html";
if (url.IsNullOrEmpty()) url = "http://x.newlifex.com/data/202401xzqh.html";
var http = new HttpClient();
var html = Task.Run(() => http.GetStringAsync(url)).Result;

View File

@ -213,6 +213,22 @@ public class AreaTests
Assert.True(File.Exists(file));
}
[Fact]
public async void Download2024()
{
//var url = "http://www.mca.gov.cn/article/sj/xzqh/2020/2020/2020092500801.html";
//var url = "http://x.newlifex.com/202301xzqh.html";
var url = "http://x.newlifex.com/data/202401xzqh.html";
var file = "area2024.html".GetFullPath();
//if (!File.Exists(file))
{
var http = new HttpClient();
await http.DownloadFileAsync(url, file);
}
Assert.True(File.Exists(file));
}
[Fact]
public void ParseTest()
{
@ -228,6 +244,21 @@ public class AreaTests
Assert.True(rs.Count > 3000);
}
[Fact]
public void ParseTest2024()
{
var file = "area2024.html".GetFullPath();
var txt = File.ReadAllText(file);
//foreach (var item in Area.Parse(txt))
//{
// XTrace.WriteLine("{0} {1}", item.ID, item.Name);
//}
var rs = Parse(txt).ToList();
Assert.NotNull(rs);
Assert.True(rs.Count > 3000);
}
//[Fact]
//public void ParseLevel4Test()
//{
@ -246,11 +277,11 @@ public class AreaTests
[Fact]
public void ParseAndSave()
{
var file = "area.html".GetFullPath();
var file = "area2024.html".GetFullPath();
var txt = File.ReadAllText(file);
var rs = Area.ParseAndSave(txt);
Assert.Equal(3208, rs.Count);
Assert.Equal(3213, rs.Count);
var r = Area.Find(_.ParentID == 0 & _.Name == "上海");
Assert.NotNull(r);
@ -274,7 +305,7 @@ public class AreaTests
Area.Meta.Session.Truncate();
var rs = Area.FetchAndSave();
//Assert.Equal(3208, rs);
Assert.Equal(3217, rs);
Assert.Equal(3222, rs);
var r = Area.Find(_.ParentID == 0 & _.Name == "上海");
Assert.NotNull(r);
@ -324,7 +355,7 @@ public class AreaTests
var rs = Area.Export(file);
XTrace.WriteLine("rs={0}", rs);
Assert.Equal(46558, rs);
Assert.Equal(46565, rs);
Assert.True(File.Exists(file.GetFullPath()));
//File.Delete(file.GetFullPath());