Получить значения из .txt - PullRequest
       3

Получить значения из .txt

0 голосов
/ 04 августа 2011

У меня есть 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.

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 04 августа 2011

сначала вы должны добавить корневой элемент. Предположим, вы создали XML-файл с именем TextFile1.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>

enter image description here

Вы можете сделать ниже, чтобы получить значение 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];
            }
        }
    }
0 голосов
/ 04 августа 2011

Добавление корневого узла кажется решением, но если вы не можете изменить ввод, вы можете использовать регулярные выражения.

0 голосов
/ 04 августа 2011

Если это единственный ввод, который у вас есть, вы можете изменить его на действительный 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 или любые другие API XML для чтения требуемых значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...