Хочу в HMTL отобразить 2 взаимосвязанных XML. Пусть это будет
1). список папок, исполъзуемых в эл. почте и
2). Содержимое этих папок – письма.
Реализованы xsl, отображающие папки и содержимое конкретной папки (письма фильтрирую по значению параметра).
folders.xml:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href="folders.xsl"?>
<folders>
<name order="1" id="Inbox">Inbox</name>
<name order="2" id="Outbox">Outbox</name>
<name order="3" id="Fld165">Folder 3</name>
<name order="4" id="Fld125">Folder 4</name>
<name order="5" id="Fld242">Folder 5</name>
<name order="6" id="Fld353">Folder 6</name>
</folders>
folders.xsl:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?xml version="1.0" encoding="UTF-8"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<body>
<ul>
<xsl:for-each select="folders/name">
<li>
<xsl:value-of select="text()"/>
</li>
</xsl:for-each>
</ul>
</body>
</html>
mails.xml:
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.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href="mails.xsl?gpSelectedFolder='Inbox'"?>
<mails>
<mail id="1245">
<folderId>Inbox</folderId>
<from><name>Name 1</name><mailAddress>name.1@mail.com</mailAddress></from>
<sentDateTime>2019-01-01 01:01:01</sentDateTime>
<subject>Mail 1</subject>
<text>some text. Mail with 2 attachments</text>
<attachments>
<attachment id="1" name="File Nr. 1" link="file1" type="pdf"/>
<attachment id="2" name="File Nr. 2" link="file2" type="word"/>
</attachments>
</mail>
<mail id="127">
<folderId>Inbox</folderId>
<from><name>Name 1</name><mailAddress>name.1@mail.com</mailAddress></from>
<sentDateTime>2019-01-03 05:08:01</sentDateTime>
<subject>Others mail</subject>
<text>some text. Mail without attachment</text>
</mail>
<mail id="178">
<folderId>Fld165</folderId>
<from><name>Name 1</name><mailAddress>name.1@mail.com</mailAddress></from>
<sentDateTime>2019-01-03 05:01:01</sentDateTime>
<subject>Mails 3</subject>
<text>some text. Mail in other folder</text>
</mail>
<mail id="17808">
<folderId>Outbox</folderId>
<to><name>Name 1</name><mailAddress>name.1@mail.com</mailAddress></to>
<to><name>Name 2</name><mailAddress>name.2@mail.com</mailAddress></to>
<sentDateTime>2019-01-03 05:01:01</sentDateTime>
<subject>I sent</subject>
<text>Sent mail for 2 users. Mail with 3 attachments</text>
<attachments>
<attachment id="1" name="File Nr. 1" link="file1" type="pdf"/>
<attachment id="2" name="File Nr. 2" link="file2" type="word"/>
<attachment id="3" name="File Nr. 3" link="file3" type="word"/>
</attachments>
</mail>
</mails>
mails.xsl:
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.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:param name="gpSelectedFolder" select="'Outbox'"/>
<xsl:output method="html" encoding="utf-8" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<xsl:call-template name="mailListInFolder"/>
</body>
</html>
</xsl:template>
<xsl:template name="mailListInFolder">
<div>
<h1>Mails</h1>
<br/>
<table border="1">
<thead>
<tr>
<td>FolderId</td>
<td>Laikas</td>
<td>From</td>
<td>To</td>
<td>Subject</td>
</tr>
</thead>
<tbody>
<xsl:for-each select="mails/mail[folderId=$gpSelectedFolder]">
<tr>
<td><xsl:value-of select="folderId"/></td>
<td><xsl:value-of select="sentDateTime"/></td>
<td><xsl:value-of select="from"/></td>
<td><xsl:value-of select="to"/></td>
<td><xsl:value-of select="subject"/></td>
</tr>
</xsl:for-each>
</tbody>
</table>
</div>
</xsl:template>
</xsl:stylesheet>
Список папок и содержимое отображаю в html:
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.
<!DOCTYPE html>
<html>
<head>
<title>Try HTML</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div>
<h1>List of folders</h1>
<script type="text/javascript">
document.write(" <iframe id='frameFolders' name='frameFolders' src='xml/folders.xml'></iframe>");
</script>
</div>
<div>
<h1>List of mails</h1>
<script type="text/javascript">
document.write(" <iframe id='frameMails' name='frameMails' src='xml/mails.xml' allowfullscreen></iframe>");
</script>
</div>
</body>
</html>
Подскажите, как отобразить список писем из другой папки. Цель - кликнуть по фреиму frameFolders и перезагрузить frameMails.
Как кликнуть и узнать, что за значение frameFolders выбрано, уже знаю. Никак не получается передать это в xsl (url xml/mails.xml?параметр=значение не работает; XMLHttpRequest выдает ошибку Access is denied (проверено в IE, Firefox) при установленной опции Miscellaneous -> Access Data sources accross domain -> Enable).