0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 16
1

Как вывести каждое значения из кавычек из XML файла?

05.03.2017, 10:29. Показов 1937. Ответов 23

Author24 — интернет-сервис помощи студентам
Как вывести каждое значения из кавычек из файл XML на VB2010

Имеется такой файл xxx-f.xml из видеорегистратора
в нем содержимое:
XML
1
2
3
4
5
6
7
8
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<path>
<info speed="20" longitude="49.17257333333334" latitude="56.79480166666667" valid="1" time="1487328644846" offsettime="0" />
<info speed="21" longitude="49.172513333333335" latitude="56.794763333333336" valid="1" time="1487328645010" offsettime="0" />
<info speed="21" longitude="49.172513333333335" latitude="56.794763333333336" valid="1" time="1487328645010" offsettime="0" />
<info speed="21" longitude="49.172513333333335" latitude="56.794763333333336" valid="1" time="1487328645847" offsettime="1" />
<info speed="21" longitude="49.172513333333335" latitude="56.794763333333336" valid="1" time="1487328645847" offsettime="1" />
<info speed="21" longitude="49.172513333333335" latitude="56.794763333333336" valid="1" time="1487328645847" offsettime="1" />
Как вывести каждое значения из кавычек из файл XML , типа
speed=20 longitude=49.17257333333334 latitude=56.79480166666667 valid=1 time=12.12.12. 20:00:00
speed=20 longitude=49.17257333333334 latitude=56.79480166666667 valid=1 time=12.12.12. 20:00:01
speed=20 longitude=49.17257333333334 latitude=56.79480166666667 valid=1 time=12.12.12. 20:00:02
и каждое значение для работы с ним
0
05.03.2017, 10:29
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2017, 10:29
Ответы с готовыми решениями:

Как вывести все значения из XML-файла
Вобщем есть некий файл msgs.xml &lt;msgs&gt; &lt;message category=''cat1''&gt; текст сообщения &lt;message category=''cat2''&gt; текст сообщения...

Как в Java вывести в консоль значения атрибутов из файла XML?
Подскажите как в Java вывести в консоль значения атрибутов из файла XML? Чтобы получались такие строки вывода: Ivanov 12 A red Petrov...

LINQ to XML: Вывести значения атрибутов из файла
Доброго времени суток, форумчане! Подскажите что не так в моём коде, не судите строго новичка:) Нужно из XML файла считать значение...

23
 Аватар для volodin661
6309 / 2151 / 337
Регистрация: 10.12.2013
Сообщений: 7,403
05.03.2017, 14:02 2
из имеющихся в Windows инструментальных средств
работать с XML- файлами удобнее всего с помощью оболочки powershell.

Добавлено через 17 минут
В случае Windows XP устанавливать powershell - не самое простое дело,
проще - скaчать с сайта Microsoft msxsl.exe и применить к данному XML простую XSLT-трансформацию
либо произвести эту же трансформацию через VBScript, не скачивая msxsl.exe.

Итак, если Windows 7 - переадресовывай вопрос в ветку 'powershell' https://www.cyberforum.ru/powershell/
а если Windows XP, переадресовывай вопрос в ветку 'XML' https://www.cyberforum.ru/xml-xsl/
0
 Аватар для ViterAlex
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
05.03.2017, 23:04 3
Сериализацией это нужно делать. Сначала классы:
Кликните здесь для просмотра всего текста
Класс Info
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
Imports System.ComponentModel
Imports System.Xml.Serialization
 
'''<remarks/>
<Serializable, XmlType(AnonymousType:=True)>
Partial Public Class Info
    Private _speed As Byte
 
    Private _longitude As Decimal
 
    Private _latitude As Decimal
 
    Private _valid As Byte
 
    Private _time As DateTime
 
    Private _offsettime As Byte
 
    '''<remarks/>
    <XmlAttribute("speed")>
    Public Property Speed As Byte
        Get
            Return Me._speed
        End Get
        Set
            Me._speed = Value
        End Set
    End Property
 
    '''<remarks/>
    <XmlAttribute("longitude")>
    Public Property Longitude As Decimal
        Get
            Return Me._longitude
        End Get
        Set
            Me._longitude = Value
        End Set
    End Property
 
    '''<remarks/>
    <XmlAttribute("latitude")>
    Public Property Latitude As Decimal
        Get
            Return Me._latitude
        End Get
        Set
            Me._latitude = Value
        End Set
    End Property
 
    '''<remarks/>
    <XmlAttribute("valid")>
    Public Property Valid As Byte
        Get
            Return Me._valid
        End Get
        Set
            Me._valid = Value
        End Set
    End Property
 
    '''<remarks/>
    <XmlAttribute("time"), Browsable(False)>
    Public Property TimeXml As ULong
        Get
            Return Me._time.ToFileTime()
        End Get
        Set
            Me._time = Date.FromFileTime(Value)
        End Set
    End Property
 
    <XmlIgnore()>
    Public Property Time As DateTime
        Get
            Return Me._time
        End Get
        Set
            Me._time = Value
        End Set
    End Property
 
    '''<remarks/>
    <XmlAttribute("offsettime")>
    Public Property Offsettime As Byte
        Get
            Return Me._offsettime
        End Get
        Set
            Me._offsettime = Value
        End Set
    End Property
End Class

Класс Path
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Imports System.ComponentModel
Imports System.Xml.Serialization
 
'''<remarks/>
<Serializable(),
    XmlType(AnonymousType:=True),
    XmlRoot([Namespace]:="", ElementName:="path", IsNullable:=False)>
Public Class Path
 
    Private _infos As List(Of Info)
 
    '''<remarks/>
    <XmlElement("info")>
    Public Property Infos() As List(Of Info)
        Get
            Return Me._infos
        End Get
        Set
            Me._infos = Value
        End Set
    End Property
End Class

Затем читаем:
VB.NET
1
2
3
4
5
6
7
8
Private Function GetData(fileName As String) As Path
    Dim p As Path
    Using reader As New StreamReader(fileName)
        Dim serial As New XmlSerializer(GetType(Path))
        p = serial.Deserialize(reader)
    End Using
    Return p
End Function
Полученный объект типа Path содержит список Infos, в котором лежат объекты типа Info со всеми необходимыми для дальнейшей работы свойствами.
Отдельно по времени. В файле оно хранится в виде числа. Не совсем понятно, что это за число: UnixFormat, WindowsTime, Ole Automation Date или ещё что-нибудь. Я написал, исходя из предположения, что это WindowsTime
Во вложении пример занесения данных в DataGridView
Миниатюры
Как вывести каждое значения из кавычек из XML файла?  
Вложения
Тип файла: zip WindowsApplication1.zip (19.4 Кб, 9 просмотров)
7
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 16
06.03.2017, 10:54  [ТС] 4
Time это число: UnixFormat
0
 Аватар для diadiavova
6331 / 2568 / 741
Регистрация: 11.04.2015
Сообщений: 4,108
Записей в блоге: 43
06.03.2017, 14:08 5
Немного дополню ответ. Если нужно отображать XML в виде таблицы в гриде, то там по сути особо ничего и не нужно. Дело в том, что DataSet вполне себе неплохо справляется с таким форматом XML. Просто надо добавить либо в дизайнере формы либо в коде DataSet и выполнить что-то типа такого
VB.NET
1
2
            DataSet1.ReadXml(xmlFileName)
            DataGridView1.DataSource = DataSet1.Tables(0)
Если нужен типизированный датасет, то можно сделать так
VB.NET
1
2
            DataSet1.ReadXml(xmlFileName)
            DataSet1.WriteXmlSchema(xmlFileName & ".xsd")
После этого появившийся рядом с XML-файлом файл XSD надо добавить в проект с помощью диалога "Добавить существующий элемент". Со строками таблицы из этого датасета можно работать так же удобно, как и с классами сериализации.
3
 Аватар для ViterAlex
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
06.03.2017, 14:15 6
Цитата Сообщение от RRRR777 Посмотреть сообщение
Time это число: UnixFormat
ну если так, то стоит немного доработать свойство
VB.NET
1
2
3
4
5
6
7
8
9
10
    '''<remarks/>
    <XmlAttribute("time"), Browsable(False)>
    Public Property TimeXml As ULong
        Get
            Return Me._time.ToFileTime()
        End Get
        Set
            Me._time = Date.FromFileTime(Value)
        End Set
    End Property
Вместо ToFileTime/FromFileTime написать свои функции: ToUnixTime/FromUnixTime. А в .Net4.6 уже и встроенные функции появились: DateTimeOffset.FromUnixTimeSeconds DateTimeOffset.ToUnixTimeSeconds
1
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 16
06.03.2017, 16:04  [ТС] 7
подробнее
1. чтение XML (решено!!!СПАСИБО)

2. с этих данных: широта и долгота (подхватывает данные с xml) в карту гугл с координатной точкой
WebBrowser1.Navigate("maps.google.com/maps?f=q&q=" + Label6.Text + "," + Label4.Text + "&z=16")

Выдает ошибку "Ваш браузер не поддерживается."


3. видеоплеер на две камеры , у каждого свое расширение avi, mp4
(проверка одинакового имени у всех файлов)
(подхватывает данные с xml)


по сути это все делается для программы free видеорегистратора Junsun.
0
 Аватар для diadiavova
6331 / 2568 / 741
Регистрация: 11.04.2015
Сообщений: 4,108
Записей в блоге: 43
06.03.2017, 16:18 8
Цитата Сообщение от RRRR777 Посмотреть сообщение
Выдает ошибку "Ваш браузер не поддерживается.
Internet Feature Controls (B..C) (Internet Explorer)
Подробнее здесь
Controlling WebBrowser Control Compatibility – Pat's Windows Development Blog
В двух словах: WebBrowser по умолчанию работает в режиме совместимости с IE7. Для того, чтобы установить более позднюю версию, надо внести определенную запись в реестр и по тем ссылкам, что сверху, написано что и куда надо внести: первая ссылка - официальная документация, по второй можно найти более подробное описание.
1
 Аватар для ViterAlex
8943 / 4855 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
06.03.2017, 16:21 9
для карт есть вполне себе хороший GMap, не нужно использовать WebBrowser.
Зачем ты передаёшь Label.Text, когда у тебя есть данные в цифре?
2
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 16
06.03.2017, 16:44  [ТС] 10
потому что они выводятся на экран

как работать с этими табличными данными?

не работает метод "Вместо ToFileTime/FromFileTime написать свои функции: ToUnixTime/FromUnixTime."

Добавлено через 3 минуты
Как работать с Gmap?
0
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 16
07.03.2017, 23:31  [ТС] 11
Выдает ошибку "Ваш браузер не поддерживается.
при открытие карт Google


решено !

карты открываются через Яндекс

Добавлено через 50 минут
ToUnixTime/FromUnixTime. чем можно заменить ? на vb2010
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17817 / 13925 / 5331
Регистрация: 17.03.2014
Сообщений: 28,501
Записей в блоге: 1
08.03.2017, 10:24 12
Цитата Сообщение от RRRR777 Посмотреть сообщение
ToUnixTime/FromUnixTime. чем можно заменить ? на vb2010
VB.NET
1
2
3
4
5
6
7
Shared Function ToUnixTime(d As DateTime) As UInteger
    Return (d.ToUniversalTime() - New DateTime(1970,1,1,0,0,0, DateTimeKind.Utc)).TotalSeconds
End Function
 
Shared Function FromUnixTime(unixSeconds As UInteger) As DateTime
    Return New DateTime(1970,1,1,0,0,0, DateTimeKind.Utc).AddSeconds(unixSeconds).ToLocalTime()
End Function
1
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 16
08.03.2017, 13:48  [ТС] 13
VB.NET
1
2
3
4
5
Dim a As String
        a = 1488565923 ' "hour":19,"minute":32,"second":3,"month":3,"day":3,"year":2017"
........................код
        Label1.Text =
       "hour"+Label2.Text+"minute"+Label3.Text+,"second"+Label4.Text+"month"+Label5.Text+"day"+Label6.Text+"year"+Label7.Text
как это реализовать ? пример
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17817 / 13925 / 5331
Регистрация: 17.03.2014
Сообщений: 28,501
Записей в блоге: 1
08.03.2017, 13:55 14
Цитата Сообщение от RRRR777 Посмотреть сообщение
как это реализовать ?
Что именно?
0
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 16
08.03.2017, 14:07  [ТС] 15
куда вставить код? (ToUnixTime/FromUnixTime) нет такой функции в vb2010

весь интернет перерыл уже)))

пробывал такой код не работает
VB.NET
1
2
        a = 1488565923 
        Label13.Text = Format(a / 86400 + 25569, "dd.mm.yyyy hh:mm:ss")

желательно пример и файл
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17817 / 13925 / 5331
Регистрация: 17.03.2014
Сообщений: 28,501
Записей в блоге: 1
08.03.2017, 15:04 16
RRRR777, вставляешь код функций которые я привел ранее в любое место где это разрешено правилами языка и вызываешь
VB.NET
1
2
Dim a As UInteger = 1488565923 ' "hour":19,"minute":32,"second":3,"month":3,"day":3,"year":2017"
Dim dt As DateTime = FromUnixTime(a)
Далее из переменной dt можно получить отдельные части даты
VB.NET
1
Label1.Text = "hour=" + dt.Hour + ", minute=" + dt.Minute + ", second=" + dt.Second + ", month=" + dt.Month + "day=" + dt.Day +", year=" + dt.Year
Обрати внимание что комментарий из кода насчет даты неверен насчет часов. Дата соотвествует 18 часам, а не 19.
2
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 16
08.03.2017, 15:14  [ТС] 17
Решено! для VB2010
Выводит UnixTime с реального времени
VB.NET
1
Label13.Text = DateDiff("s", "01/01/1970 00:00:00", Now())
Выводит дату в нормальный вид из UnixTime
VB.NET
1
Label13.Text = DateAdd("s", 1488988847, "01.01.1970 00:00:00")
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17817 / 13925 / 5331
Регистрация: 17.03.2014
Сообщений: 28,501
Записей в блоге: 1
08.03.2017, 15:19 18
RRRR777, это неверное решение. UnixTime хранит дату-время в часовом поясе UTC+0. Твой же код использует локальное время и поэтому дает неверный результат.
2
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 16
08.03.2017, 23:35  [ТС] 19
не работает метод "Вместо ToFileTime/FromFileTime написать свои функции: ToUnixTime/FromUnixTime."

В чем ошибка?
Миниатюры
Как вывести каждое значения из кавычек из XML файла?  
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17817 / 13925 / 5331
Регистрация: 17.03.2014
Сообщений: 28,501
Записей в блоге: 1
08.03.2017, 23:58 20
RRRR777,
VB.NET
1
Return ToUnixTime(Me._time)
Подразумевается что в твоем классе есть метод ToUnixTime
0
08.03.2017, 23:58
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.03.2017, 23:58
Помогаю со студенческими работами здесь

Очереди. За один просмотр файла вывести на экран каждое третье слово, а затем каждое четвертое
Помогите студенту сделать задачу на с++, вот условие: Создать файл вещественных чисел за один просмотр файла вывести на экран каждое...

Как вывести каждое число из файла в переменную?
Есть файл rec.txt в который записаны числа в таком виде: 9 38.62751074 147.64926401 1 и тд. Каждое из этих чисел нужно записать в а1 до...

Вывести данные в таблицу из xml файла. - Анализ XML файла, выгружаемого программой SPU_ORB.
Есть такой файлик с расширением .xml (из программы spy_orb) в нем много строк, но нам нужно вытащить только суммы и запихнуть в таблицу,...

Как прочитать значения их файла xml?
Читаю файл в диалоге, а затем пытаюсь из него выбрать данные, но что то плохо получается, можете помочь? private void...

Как присваивать значения переменным из xml файла?
Есть xml файл, необходимо, чтобы при вводе переменной равной id кабинета, присваивалось значение из базы данных другим переменным ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Linux API: Полное руководство
hw_wired 08.02.2025
Linux API – это низкоуровневый программный интерфейс, обеспечивающий взаимодействие пользовательских приложений с ядром операционной системы. Он включает набор системных вызовов, библиотечных функций. . .
Асинхронное программировани­­­­­е и эмуляция async/await в C (СИ)
hw_wired 08.02.2025
Язык программирования C, несмотря на свой возраст, предоставляет неплохие средства для реализации асинхронных операций, позволяя создавать эффективные решения для обработки параллельных задач. В. . .
Как сгенерировать случайное число в указанном диапазоне в JavaScript
bytestream 08.02.2025
В JavaScript генерация случайных чисел основана на детерминированном алгоритме, который создает последовательность псевдослучайных значений. Встроенный метод Math. random() возвращает псевдослучайное. . .
Как получить список всех таблиц в PostgreSQL
bytestream 08.02.2025
PostgreSQL предлагает несколько методов для получения списка таблиц в базе данных. Наиболее распространенный способ - использование системного каталога pg_tables, который содержит информацию обо всех. . .
Java Spring для начинающих
bytestream 08.02.2025
Spring Framework - это универсальное решение для создания корпоративных Java-приложений. Он предоставляет комплексную программную и конфигурационную модель для современных приложений на Java. Spring. . .
Асинхронное программировани­­­­­­е и async/await в Visual Basic
bytestream 08.02.2025
В основе асинхронного программирования в Visual Basic лежит концепция неблокирующего выполнения операций. Когда программа встречает длительную операцию, например, чтение большого файла или запрос к. . .
Async/await и асинхронное программировани­­е в Delphi
bytestream 08.02.2025
Асинхронное программирование является неотъемлемой частью разработки современных приложений, позволяя создавать отзывчивые и эффективные программы. В Delphi реализация асинхронности опирается на. . .
Асинхронное программировани­­­­­е и async/await в C#
bytestream 08.02.2025
Асинхронное программирование - концепция, позволяющая приложениям эффективно выполнять длительные операции без блокировки основного потока выполнения. В контексте современной разработки на C# это. . .
Асинхронное программировани­­­­­е и горутины/каналы в Go
bytestream 08.02.2025
Язык Go изначально разрабатывался с учетом современных многоядерных процессоров и необходимости эффективного параллельного выполнения задач. В отличие от традиционных подходов к асинхронному. . .
Как восстановить stash в Git
hw_wired 08.02.2025
Git stash - это средство для временного сохранения изменений в рабочей директории. В процессе разработки часто возникают ситуации, когда нужно быстро переключиться на другую задачу, но текущие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru