我有一个像这样的file.txt:
这只是.txt文件的一部分
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>GeoServer Configuration</title>
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW"/>
</head>
<body>
Workspaces
<ul>
<li>
<a href="http://xxxxxx:8080/geoserver/rest/workspaces/worldmap1.html">worldmap1</a>
</li>
<li>
<a href="http://xxxxxx:8080/geoserver/rest/workspaces/worldmap2.html">worldmap2</a>
</li>
</ul>
</body>
</html>
有可能获得价值吗?我试图将.txt传递给.xml文件但是我遇到了一些问题,因为它不是一个格式良好的xml。
提前致谢
答案 0 :(得分:1)
首先你必须添加一个根元素。假设您创建了一个名为TextFile1.xml
的XML文件
其中包含以下XML
<Item>
<li>
<a href="http://10.80.14.188:8080/geoserver/rest/workspaces/worldmap1.html">worldmap1</a>
</li>
<li>
<a href="http://10.80.14.188:8080/geoserver/rest/workspaces/worldmap2.html">worldmap2</a>
</li>
</Item>
您可以执行以下操作以获取href值
public static class MyClass
{
public static void Main()
{
var xmldoc = XDocument.Load(@"TextFile1.xml");
XNamespace p = "http://www.w3.org/1999/xhtml";
var result = from item in xmldoc.Descendants(p + "a")
select item;
foreach (var item in result.ToList())
{
string href = item.Attribute("href").Value;
var splitHref = href.Split('/');
string page = splitHref[splitHref.Length - 1];
}
}
}
答案 1 :(得分:0)
如果这是您唯一的输入,可以通过添加根节点将其更改为有效的xml文档:
<root>
<li><a href="http://10.80.14.188:8080/geoserver/rest/workspaces/worldmap1.html">worldmap1</a></li>
<li><a href="http://10.80.14.188:8080/geoserver/rest/workspaces/worldmap2.html">worldmap2</a></li>
</root>
(这对于一些简单的字符串连接很容易)
该文档现在是格式良好的XML,因此您可以使用Linq to XML或任何其他XML API来读取您需要的值。
答案 2 :(得分:0)
添加根节点似乎是解决方案,但如果您无法更改输入,则可以使用正则表达式。