Форум: "Начинающим";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];
ВнизСчитывание значений из xml Найти похожие ветки
← →
smart (2011-03-04 07:20) [0]Доброе утро. Как считывать данные из xml? XML у меня такой
<?xml version="1.0" encoding="windows-1251" ?>
- <polkin>
- <info>
<api_version>1.0</api_version>
<time>10:00:32</time>
<execution_time>0.0178761482239</execution_time>
</info>
- <result value="0">
<id>20041</id>
</result>
</polkin>
Теперь, как взять из xml, допустим цифру 20041, и отобразить его?
Пробовал так, не получилосьShowMessage(VarToStr(Form1.XMLDocument1.DocumentElement.ChildNodes["id"].T ext));
← →
Плохиш © (2011-03-04 09:56) [1]
> Пробовал так, не получилось
Правильно, ибо нету у рутового элемента подэлемента "id".
← →
smart (2011-03-04 10:52) [2]А как тогда отобразить этот элемент? помогите плзз
← →
clickmaker © (2011-03-04 11:10) [3]ChildNodes.FindNode рекурсивно.
Либо сымпортить MS XML и юзать DOMDocument с XPath и selectSingleNode()
← →
smart (2011-03-04 11:16) [4]А можно попроще и поподробней объяснить?
← →
smart (2011-03-04 11:17) [5]И как это будет выглядеть на моем примере?
← →
Плохиш © (2011-03-04 11:36) [6]
> smart (04.03.11 11:16) [4]
>
> А можно попроще и поподробней объяснить?
Nachdem ein XML-Dokument von einer DOM-Implementierung ausgewertet wurde, stehen die von ihm repräsentierten Daten als Hierarchie von Knoten zur Verfügung. Jeder Knoten entspricht einem Tag-Element im Dokument. Als Ausgangspunkt diene das folgende XML-Beispiel:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE StockHoldings SYSTEM "sth.dtd">
<StockHoldings>
<Stock exchange="NASDAQ">
<name>Borland</name>
<price>15.375</price>
<symbol>BORL</symbol>
<shares>100</shares>
</Stock>
<Stock exchange="NYSE">
<name>Pfizer</name>
<price>42.75</price>
<symbol>PFE</symbol>
<shares type="preferred">25</shares>
</Stock>
</StockHoldings>
TXMLDocument würde die Hierarchie der Knoten folgendermaßen generieren: Der Stamm der Hierarchie ist der Knoten StockHoldings. StockHoldings verfügt über zwei untergeordnete Knoten, die den beiden Stock-Tags entsprechen. Jeder dieser beiden untergeordneten Knoten verfügt über vier eigene untergeordnete Knoten (name, price, symbol und shares). Diese vier Knoten fungieren als Endknoten. Der enthaltene Text erscheint als der Wert der einzelnen Endknoten.
Hinweis
Diese Einteilung in Knoten unterscheidet sich gerinfügig von der Art und Weise, in der eine DOM-Implementierung Knoten für ein XML-Dokument generiert. Insbesondere behandelt ein DOM-Parser alle Tag-Elemente als interne Knoten. Zusätzliche Knoten (vom Typ Textknoten) werden für die Werte aller name-, price-, symbol- und shares- Knoten erstellt. Diese Textknoten erscheinen dann als die untergeordneten Knoten der Knoten name, price, symbol und shares.
Der Zugriff auf einen Knoten erfolgt über eine IXMLNode-Schnittstelle, beginnend mit dem Stammknoten, bei dem es sich um den Wert der Eigenschaft DocumentElement der XML-Dokumentkomponente handelt.
Mit dem Wert eines Knotens arbeiten
Bei einer IXMLNode-Schnittstelle können Sie anhand der Eigenschaft IsTextElement prüfen, ob diese einen internen Knoten oder einen Endknoten repräsentiert.
Falls diese für einen Endknoten steht, können Sie seinen Wert mit der Eigenschaft Text lesen oder setzen.
Falls diese für einen internen Knoten steht, können Sie auf ihre untergeordneten Knoten mit der Eigenschaft ChildNodes zugreifen.
Mit dem weiter oben gezeigten XML-Dokument können Sie beispielsweise den Wert der Borland-Aktie folgendermaßen lesen:
BorlandStock := XMLDocument1.DocumentElement.ChildNodes[0];
Price := BorlandStock.ChildNodes["price"].Text;
← →
Медвежонок ХМЛ © (2011-03-04 11:37) [7]showmessage(x.selectsinglenode("......./id").nodeText);
← →
Плохиш © (2011-03-04 11:45) [8]
> smart (04.03.11 11:17) [5]
>
> И как это будет выглядеть на моем примере?
Чем твой пример так уникален?
← →
smart (2011-03-04 11:48) [9]Не судите так строго. вопрос не в уникальности. Для профи такие вопросы могут казаться глупым, но я просто новичок и в дельфи и в xml. поэтому хочется узнать поподробнее
← →
Плохиш © (2011-03-04 11:52) [10]
> поэтому хочется узнать поподробнее
И что ты уже сделал для узнавания? Или думаешь, что сейчас кто-то броситься тебе основы разжёвывать, описанные во всех книжках?
Требуемый кусок из справки я тебе дал, узнавай.
← →
имя (2011-03-04 11:53) [11]Удалено модератором
← →
smart (2011-03-04 11:58) [12]Я уже прогуглил на эту тему, прочитал "кусок из справки". Кому-то это дело пяти минут. Я просто хотел посмотреть пример, если у кого то она есть...
← →
Медвежонок ХМЛ © (2011-03-04 12:32) [13]у меня есть.
вот тебе пример.
showmessage(x.selectsinglenode("/*[1]").nodeText);
← →
sniknik © (2011-03-04 12:37) [14]> Кому-то это дело пяти минут.
чтобы стало делом пяти минут на обучение любому делу нужно потратить не один день...
ты либо учишься, либо "халявиш" за счет других... с соответствующим к себе от этого отношением.
← →
RWolf © (2011-03-04 12:53) [15]
> Я уже прогуглил на эту тему
не верю.
гугль по запросу Delphi XML выдаёт море ссылок.
в первой же ссылке есть всё, что нужно:
http://www.codenet.ru/progr/delphi/stat/Using-XML/
← →
Плохиш © (2011-03-04 13:00) [16]
> RWolf © (04.03.11 12:53) [15]
Там конкретно его пример не рассматривается.
← →
clickmaker © (2011-03-04 13:01) [17]http://www.google.ru/search?hl=ru&newwindow=1&biw=1437&bih=769&q=%D0%BA%D0%B0%D0%BA+%D0%B2%D0%B7%D1%8F%D1%82%D1%8C+%D0%B8%D0%B7+xml%2C+%D0%B4%D0%BE%D0%BF%D1%83%D1%81%D1%82%D0%B8%D0%BC+%D1%86%D0%B8%D1%84%D1%80%D1%83+20041&aq=f&aqi=&aql=&oq=
целых 3 сцылки )
← →
smart (2011-03-04 13:22) [18]Получилось. Всем спасибо за помощь и за внимание. А ответ получился такой:
ShowMessage(VarToStr(Form1.XMLDocument1.DocumentElement.ChildNodes[1].Chil dNodes["id"].text));
Всем Удачи и Респект за советы )))
← →
sniknik © (2011-03-04 13:36) [19]> А ответ получился такой:
ShowMessage(VarToStr(Form1.XMLDocument1.DocumentElement.ChildNodes[1].ChildNodes["id"].text));
вот откуда у нас проблемы с агентами типа, "у нас все сломалось потому что вы поменяли формат xml", а положение нода вообще то не регламентируется.
равнозначно -<?xml version="1.0" encoding="windows-1251" ?>
- <polkin>
- <result value="0">
<id>20041</id>
</result>
- <info>
<api_version>1.0</api_version>
<time>10:00:32</time>
<execution_time>0.0178761482239</execution_time>
</info>
</polkin>
← →
Плохиш © (2011-03-04 14:02) [20]
> sniknik © (04.03.11 13:36) [19]
Да ладно тебе, там надо начинать сForm1
.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.004 c