从 .txt 获取值

发布于 2024-11-28 01:10:12 字数 804 浏览 0 评论 0原文

我有一个像这样的 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。

提前致谢

I have a file.txt like this:

This is only a part of the .txt file

<!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>

It´s possible to get the value ? I´m trying to pass the .txt to a .xml file but I have some problems because is not a well formed xml.

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

迷荒 2024-12-05 01:10:12

首先你必须添加一个根元素。假设您创建一个名为 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];
            }
        }
    }

first you have to add a root element. Let's suppose you create an XML file named TextFile1.xml
which contains the below 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>

enter image description here

you can do the below to get the href value

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];
            }
        }
    }
无畏 2024-12-05 01:10:12

如果这是您拥有的唯一输入,您可以通过添加根节点将其更改为有效的 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 XML 或任何其他 XML API 来读取您需要的值。

If this is the only input you have, you could change it into a valid xml document by adding a root node:

<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>

(This is easy to do with some simple string concatenation)

The document is now well-formed XML, hence you ca use Linq to XML or any other XML APIs to read the values you require.

拧巴小姐 2024-12-05 01:10:12

添加根节点似乎是解决方案,但如果您无法更改输入,则可以使用正则表达式。

Adding a root node seems the solution but if you cannot change the input, you can use regular expressions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文