Jump to content
  • 0

можно в показать в виде таблицы xml документ


avn72
 Share

Question

Доброе время суток!

у меня есть html страничка c данными сотрудников (фио, телефон, кабинет и т.д.) в виде таблицы. При изменении каких-либо данных приходится ручками менять эту таблицу. Но есть возможность получить эти данные в виде xml-документа. Вопрос можно ли как-то показать данные этого xml-документ в табличном виде на html-страничке, чтоб при изменении содержимого xml автоматически менялись данные в таблице? Меня интересует, существуют ли способы добиться желаемого без использования php или asp.net.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

xml+xsl=html =)

можно в браузере обрабатывать эту связку, можно при помощи js.

То есть я так понимаю, есть xml, который меняется? И надо данные из него в html показывать?

Почитайте про xslt.

Edited by Быколай
Link to comment
Share on other sites

  • 0

>То есть я так понимаю, есть xml, который меняется? И надо данные из него в html показывать?

Именно

>можно в браузере обрабатывать эту связку, можно при помощи js

а поподробнее можно - кусочек кода например?

Я не веб-мастер и даже не начинаюший))) я просто админ и мне надо чтоб при изменении в базе Active Directory (далее AD)(добавлении пользователя, внесении изменений, удалении пользователя) вывести актуальную инфу в html-страничку с минимальным напрягом))). В xml из AD я могу вытвщить, знаю пару тегов но не знаю ни php, ни ASP.Net ни js))) Если не затруднит - прошу выложить кусок кода - чтоб понять, как "можно в браузере обрабатывать эту связку, можно при помощи js"

то что нужно создать таблицу XSLT-стилей (преобразования) - это я как-нить осилю)))

Link to comment
Share on other sites

  • 0

Если есть возможность использовать php, то я бы рекомендовал его использовать. Простейщий код преобразования будет выглядеть так:


<?php
$xmlFile = file_get_contents("data.xml");
$xmlData = new SimpleXMLElement($xmlFile);

$xml = new DOMDocument();

$xml->loadXML($xmlData->asXML());

$xsl = new DOMDocument;
//TODO довести до ума
$xslFile = "to-html.xsl";
$xsl->load($xslFile);
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

echo $proc->transformToXML($xml);

соответвенно он обработает файл data.xml, следующего формата:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<node>
<name>Иванов И.И.</name>
<phone>12345</phone>
<office>501</office>
</node>
<node>
<name>Петров П.П.</name>
<phone>23456</phone>
<office>502</office>
</node>
<node>
<name>Сидоров С.С.</name>
<phone>34567</phone>
<office>503</office>
</node>
</root>

при помощи шаблона xsl следующего вида:


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"
encoding="utf-8"
indent="yes"/>

<xsl:template match="/root">
<xsl:text disable-output-escaping="yes"><!doctype html></xsl:text>
<html>
<head>
<title></title>
</head>
<body>
<xsl:for-each select="node">
<h1>Сотрудник №<xsl:value-of select="position()"/></h1>
<b>ФИО:</b> <xsl:value-of select="name"/><br/>
<b>Телефон:</b> <xsl:value-of select="phone"/><br/>
<b>№ кабинета:</b> <xsl:value-of select="office"/><br/>
<hr/>
</xsl:for-each>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

На прямую браузеры могут сами обрабатывать данные xml с учётом внешнего файла шаблона. Пример:


<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="to-html.xsl"?>

<root>
<node>
<name>Иванов И.И.</name>
<phone>12345</phone>
<office>501</office>
</node>
<node>
<name>Петров П.П.</name>
<phone>23456</phone>
<office>502</office>
</node>
<node>
<name>Сидоров С.С.</name>
<phone>34567</phone>
<office>503</office>
</node>
</root>

Edited by Быколай
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy