powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / XML, извлечение значения элемента
16 сообщений из 16, страница 1 из 1
XML, извлечение значения элемента
    #38589480
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Среда Visual Basic STUDIO’2010 Professional
Как поставить несколько пробелов перед ценой, т.е.
После имени "Wheat Bread"?
Вывод в TextBox.
Спасибо

Ниже файл "Simple.xml"
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0"?>
<!-- This simple data represents food items in a grocery store -->
<GroceryStore>
	<StoreName>Fourth Coffee</StoreName>  
	<Departments>
		<Department Name="Breads">
			<Item ID="B1">
				<Name>Wheat Bread</Name> 
				<Price>1.29</Price>
				<New />
			</Item>
			</Department>
	</Departments>
</GroceryStore>



Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Function listElementsByTag() As String
Me.loadXmlFile() ' использует файл "Simple.xml"
Dim xElem As XmlElement
Dim strTag As String
Dim writer As New StringWriter
strTag = InputBox("Enter an XPath expression to find:", "Enter Search Expression", FindNodesXPath)
If strTag.Length > 0 Then
    'Найдите группу узлов, основанную на введенном выражении XPath.
    xmlNodeList = xmlDoc.SelectNodes(strTag) ' Ссылка на объект не указывает на экземпляр объекта.
    With writer ' ВЫВОД в контрол TextBox 
        If Not xmlNodeList Is Nothing Then
            For Each xElem In xmlNodeList
                .WriteLine("InnerText: " & xElem.InnerText) ' выводит:
                ' InnerText: Wheat Bread1.29 - отсутствует пробел перед Ценой
                ' как его поставить?
            Next xElem
        End If
    End With
End If
writer.Close()
Return writer.ToString
End Function
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38589525
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805Как поставить несколько пробелов перед ценой, т.е.
После имени "Wheat Bread"?
не использовать InnerText
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38590788
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторне использовать InnerText
поконкретнее, если НЕ СЛОЖНО, т.к.
поиск в шедевре MSDN - НЕУДАЧНЫЙ.
Спасибо
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38590827
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805,

1) .//Item - или еще какой xpath по выборке элементов Item
2) Получаем список из XmlNode
3) У каждого элемента XmlNode есть ChildNodes
4) Пробегаетесь вторым циклом по дочерним элементам и берете их Value (или InnerText)
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38590882
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Vova_1805,

1) .//Item - или еще какой xpath по выборке элементов Item
2) Получаем список из XmlNode
3) У каждого элемента XmlNode есть ChildNodes
4) Пробегаетесь вторым циклом по дочерним элементам и берете их Value (или InnerText)

Код: c#
1.
2.
3.
            XmlNodeList xmlNodeList = doc.SelectNodes(".//Item");
            foreach (XmlNode xmlNode in xmlNodeList)
                Console.WriteLine(String.Join(", ", xmlNode.ChildNodes.Cast<XmlNode>().Select(x => x.Name + "=" + x.InnerText)));
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38591975
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
WriteLine([String].Join("   4, ", xmlNode.ChildNodes.Cast(Of XmlNode)().[Select](Function(x) Convert.ToString(x.Name) & "=" & Convert.ToString(x.InnerText))))


Вышестоящая строка выводит в виде
Name=Wheat Bread 4, Price=1.29 4, New=
а надо на подобие нижеприведенной строки
Wheat Bread : 1.29
Т.е не выводить
Name=
Price=
Спасибо
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38591993
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805,

А что мешает исправить формат строки?
Я же привел в качестве примера, как можно получить значения элементов по отдельности и работать с ними

String.Format("{0}: {1}", xmlNode["Name"].InnerText, xmlNode["Price"].InnerText)
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38592792
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
ПРАВИЛЬНО,
Большое СПАСИБО!
и ещё, если не трудно:
Элемент "Name" содержит, допустим, максимум 30 знаков,
Как реализовать вывод второго элемена "Price"
Начиная с 31-ой позиции для разных шрифтов,
Чтобы это было красиво, как на снимке, где
Я вручную выравнял?
СПАСИБО.
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38592804
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Format
пункт "выравнивание"


String.Format("{0, 30}: {1}", xmlNode["Name"].InnerText, xmlNode["Price"].InnerText)
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38592816
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79 Format
пункт "выравнивание"


String.Format("{0, 30}: {1}", xmlNode["Name"].InnerText, xmlNode["Price"].InnerText)
Забыл уточнить, для "красиво" нужно использовать моноширинные шрифты, типа Courier New
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38593038
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы было красиво
Использовать моноширинные шрифты, как уже сказано.
Или вместо TextBox'а использовать какой-нибудь табличный контрол: выводить данные в разные колонки.
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38599311
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79 , очередная Ваша подсказка
Очень ХОРОША!
Большое СПАСИБО!
А как выравнять слева элемент "Name", как показано
на нижем снимке?
Конечно, использую "Courier New".
Код: vbnet
1.
2.
3.
xmlDisplay.Font = New System.Drawing.Font("Courier New", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))

(String.Format("{0, 30}: {1}", xmlNode("Name").InnerText, xmlNode("Price").InnerText)


СПАСИБО!
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38599333
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805,

Вы вообще удосужились прочитать инфу по ссылке, которую я привел?

Код: plaintext
1.
2.
3.
4.
5.
6.
Необязательный компонент alignment — это целое число со знаком, которое служит для 
указания желательной ширины поля форматирования. Если значение alignment меньше длины 
форматируемой строки, то alignment пропускается, и в качестве значения ширины поля используется 
длина форматируемой строки. Форматируемые данные выравниваются в поле по правому 
краю, если alignment имеет положительное значение, или по левому краю, если alignment 
имеет отрицательное значение. При необходимости отформатированная строка дополняется 
пробелами. При использовании компонента alignment необходимо поставить запятую.

String.Format("{0, -30}: {1}", xmlNode("Name").InnerText, xmlNode("Price").InnerText
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38599342
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВы вообще удосужились прочитать инфу по ссылке, которую я привел?
Прежде, чем Вас беспокоить,
вчера около 02 ночи закончил смотреть MSDN'2008
РАЗДЕЛ
String.Format
Не знаю где Вы нашли ответы на мои вопросы.
Мне, конечно, очень неудобно спрашивать.
Очент Вам признателен, БОЛЬШОЕ СПАСИБО!
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38599352
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vova_1805авторВы вообще удосужились прочитать инфу по ссылке, которую я привел?
Прежде, чем Вас беспокоить,
вчера около 02 ночи закончил смотреть MSDN'2008
РАЗДЕЛ
String.Format
Не знаю где Вы нашли ответы на мои вопросы.
Мне, конечно, очень неудобно спрашивать.
Очент Вам признателен, БОЛЬШОЕ СПАСИБО!

Странно, ведь я ссылку давал не на String.Format, а на "Составное форматирование". Это здесь: http://msdn.microsoft.com/ru-ru/library/txafckwd(v=vs.110).aspx


Arm79 Format
пункт "выравнивание"
...
Рейтинг: 0 / 0
XML, извлечение значения элемента
    #38599388
Vova_1805
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
виноват, теперь нашёл.
Благодарю.

Составное форматирование
.NET Framework 4.5
Другие версии
и т.д.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / XML, извлечение значения элемента
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]