Hi Peter,
I get error when processing the stylesheet. It errors here.
<xsl:for-each select="registr ation[count(.|key('en try',company
[1])=1]">
specifically:
Expression does not return a DOM node.
registration[-->count(.|key('e ntry',company[1])=1]<--
Ideas?
Thanks,
Chris
"Peter Flynn" <pe********@m.s ilmaril.ie> wrote in message
news:3n******** *****@individua l.net... Chris Kettenbach wrote:
Good Morning, Sorry for xposting. Just need a liitle help. I have an xml file that's generated from a database. How do I select distinct values from a field
XML doesn't have fields -- the database did but this isn't a database any more. In XML they're called elements (they've got a lot in common with fields but they ain't the same).
in xslt and then loop through the records and produce output.
It looks like you need to process the information grouped by company name, and there's a technique in XSLT 1.0 for doing this called Muenchian grouping (it won't be needed in XSLT 2 because that has a built-in group-processing command, but XSLT 2 is not a Recommendation yet).
Check the XSLT FAQ for "Muenchian" to find examples.
///Peter
[Group and followup corrected to comp.text.xml]
Example
<registration s> <registration > <company>Awesom e Printers</company> <first>John</first> <last>Smith</last> </registration> <registration > <company>Awesom e Printers</company> <first>Bob</first> <last>Roberts </last> </registration> <registration > <company>Awesom e Printers</company> <first>John</first> <last>Johnson </last> </registration> <registration > <company>Othe r Company</company> <first>Tom</first> <last>Thomas</last> </registration> <registration > <company>Othe r Company</company> <first>Dan</first> <last>Daniels </last> </registration> </registrations> +++++++++++++++ +++++++++++++++ +++++++++++++++ +++ I want the out put to be something like this
<table> <tr> <td>Company Name</td> <td>Employees </td> </tr> <tr> <td>Awesome Printers</td> <td>John Smith<br/> Bob Roberts<br/> John Johnson<br/></td> </tr> <tr> <td>Other Company</td> <td>Tom Thomas<br/> Dan Daniels<br/></td> </tr> </table>
Effectively writing unique company names once and then putting only the employees from that company into the employee table cell.
If you scrolled down this far then you've been rewarded :-)
The trick is to use lookup keys to test the selected group of elements against, in order to pick only the first ocurrence in each group; then output the group header at that point; and only then go and process all the elements in the group to extract the detail from each of them.
The syntax is tricky because it's very compact. It selects all registration elements, but subjects each of them to the test that [the number of nodes in the union of (the current node and the first node with the current company value returned by the lookup) is equal to 1] -- in effect meaning they are one and the same node, ie the first in their company name grouping. You'll probably need to read that 3 or 4 times -- it took me a week to grok it.
<?xml version="1.0" encoding="iso-8859-1"?> <xsl:styleshe et xmlns:xsl="http ://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:key name="entry" match="registra tion" use="company"/>
<xsl:template match="/"> <html> <head> <title>Registra tions</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template>
<xsl:template match="registra tions"> <table> <xsl:for-each select="registr ation[count(.|key('en try',company [1])=1]"> <xsl:sort select="company "/> <tr> <th valign="top"> <xsl:value-of select="company "/> </th> <td valign="top"> <xsl:for-each select="key('en try',current()/company)"> <xsl:sort select="last"/> <xsl:value-of select="first"/> <xsl:text> </xsl:text> <xsl:value-of select="last"/> <xsl:if test="position( )!=last()"> <br/> </xsl:if> </xsl:for-each> </td> </tr> </xsl:for-each> </table> </xsl:template>
</xsl:stylesheet>
///Peter 4 1820
Unbalanced left <--> right parenthenses
"Chris Kettenbach" <in**@piasd.net > wrote in message
news:QY******** ************@gi ganews.com... Hi Peter, I get error when processing the stylesheet. It errors here.
<xsl:for-each select="registr ation[count(.|key('en try',company [1])=1]">
specifically:
Expression does not return a DOM node. registration[-->count(.|key('e ntry',company[1])=1]<--
Ideas?
Thanks, Chris
"Peter Flynn" <pe********@m.s ilmaril.ie> wrote in message news:3n******** *****@individua l.net... Chris Kettenbach wrote:
Good Morning, Sorry for xposting. Just need a liitle help. I have an xml file that's generated from a database. How do I select distinct values from a field
XML doesn't have fields -- the database did but this isn't a database any more. In XML they're called elements (they've got a lot in common with fields but they ain't the same).
in xslt and then loop through the records and produce output.
It looks like you need to process the information grouped by company name, and there's a technique in XSLT 1.0 for doing this called Muenchian grouping (it won't be needed in XSLT 2 because that has a built-in group-processing command, but XSLT 2 is not a Recommendation yet).
Check the XSLT FAQ for "Muenchian" to find examples.
///Peter
[Group and followup corrected to comp.text.xml]
Example
<registration s> <registration > <company>Awesom e Printers</company> <first>John</first> <last>Smith</last> </registration> <registration > <company>Awesom e Printers</company> <first>Bob</first> <last>Roberts </last> </registration> <registration > <company>Awesom e Printers</company> <first>John</first> <last>Johnson </last> </registration> <registration > <company>Othe r Company</company> <first>Tom</first> <last>Thomas</last> </registration> <registration > <company>Othe r Company</company> <first>Dan</first> <last>Daniels </last> </registration> </registrations> +++++++++++++++ +++++++++++++++ +++++++++++++++ +++ I want the out put to be something like this
<table> <tr> <td>Company Name</td> <td>Employees </td> </tr> <tr> <td>Awesome Printers</td> <td>John Smith<br/> Bob Roberts<br/> John Johnson<br/></td> </tr> <tr> <td>Other Company</td> <td>Tom Thomas<br/> Dan Daniels<br/></td> </tr> </table>
Effectively writing unique company names once and then putting only the employees from that company into the employee table cell.
If you scrolled down this far then you've been rewarded :-)
The trick is to use lookup keys to test the selected group of elements against, in order to pick only the first ocurrence in each group; then output the group header at that point; and only then go and process all the elements in the group to extract the detail from each of them.
The syntax is tricky because it's very compact. It selects all registration elements, but subjects each of them to the test that [the number of nodes in the union of (the current node and the first node with the current company value returned by the lookup) is equal to 1] -- in effect meaning they are one and the same node, ie the first in their company name grouping. You'll probably need to read that 3 or 4 times -- it took me a week to grok it.
<?xml version="1.0" encoding="iso-8859-1"?> <xsl:styleshe et xmlns:xsl="http ://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:key name="entry" match="registra tion" use="company"/>
<xsl:template match="/"> <html> <head> <title>Registra tions</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template>
<xsl:template match="registra tions"> <table> <xsl:for-each select="registr ation[count(.|key('en try',company [1])=1]"> <xsl:sort select="company "/> <tr> <th valign="top"> <xsl:value-of select="company "/> </th> <td valign="top"> <xsl:for-each select="key('en try',current()/company)"> <xsl:sort select="last"/> <xsl:value-of select="first"/> <xsl:text> </xsl:text> <xsl:value-of select="last"/> <xsl:if test="position( )!=last()"> <br/> </xsl:if> </xsl:for-each> </td> </tr> </xsl:for-each> </table> </xsl:template>
</xsl:stylesheet>
///Peter
Do you have an example of how it should look?
Thanks for your help.
Chris
"Dimitre Novatchev" <di******@tpg.c om.au> wrote in message
news:43******** *************** @authen.white.r eadfreenews.net ... Unbalanced left <--> right parenthenses "Chris Kettenbach" <in**@piasd.net > wrote in message news:QY******** ************@gi ganews.com... Hi Peter, I get error when processing the stylesheet. It errors here.
<xsl:for-each select="registr ation[count(.|key('en try',company [1])=1]">
specifically:
Expression does not return a DOM node. registration[-->count(.|key('e ntry',company[1])=1]<--
Ideas?
Thanks, Chris
"Peter Flynn" <pe********@m.s ilmaril.ie> wrote in message news:3n******** *****@individua l.net... Chris Kettenbach wrote:
Good Morning, Sorry for xposting. Just need a liitle help. I have an xml file that's generated from a database. How do I select distinct values from a field
XML doesn't have fields -- the database did but this isn't a database any more. In XML they're called elements (they've got a lot in common with fields but they ain't the same).
in xslt and then loop through the records and produce output.
It looks like you need to process the information grouped by company name, and there's a technique in XSLT 1.0 for doing this called Muenchian grouping (it won't be needed in XSLT 2 because that has a built-in group-processing command, but XSLT 2 is not a Recommendation yet).
Check the XSLT FAQ for "Muenchian" to find examples.
///Peter
[Group and followup corrected to comp.text.xml]
Example
<registration s> <registration > <company>Awesom e Printers</company> <first>John</first> <last>Smith</last> </registration> <registration > <company>Awesom e Printers</company> <first>Bob</first> <last>Roberts </last> </registration> <registration > <company>Awesom e Printers</company> <first>John</first> <last>Johnson </last> </registration> <registration > <company>Othe r Company</company> <first>Tom</first> <last>Thomas</last> </registration> <registration > <company>Othe r Company</company> <first>Dan</first> <last>Daniels </last> </registration> </registrations> +++++++++++++++ +++++++++++++++ +++++++++++++++ +++ I want the out put to be something like this
<table> <tr> <td>Company Name</td> <td>Employees </td> </tr> <tr> <td>Awesome Printers</td> <td>John Smith<br/> Bob Roberts<br/> John Johnson<br/></td> </tr> <tr> <td>Other Company</td> <td>Tom Thomas<br/> Dan Daniels<br/></td> </tr> </table>
Effectively writing unique company names once and then putting only the employees from that company into the employee table cell.
If you scrolled down this far then you've been rewarded :-)
The trick is to use lookup keys to test the selected group of elements against, in order to pick only the first ocurrence in each group; then output the group header at that point; and only then go and process all the elements in the group to extract the detail from each of them.
The syntax is tricky because it's very compact. It selects all registration elements, but subjects each of them to the test that [the number of nodes in the union of (the current node and the first node with the current company value returned by the lookup) is equal to 1] -- in effect meaning they are one and the same node, ie the first in their company name grouping. You'll probably need to read that 3 or 4 times -- it took me a week to grok it.
<?xml version="1.0" encoding="iso-8859-1"?> <xsl:styleshe et xmlns:xsl="http ://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:key name="entry" match="registra tion" use="company"/>
<xsl:template match="/"> <html> <head> <title>Registra tions</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template>
<xsl:template match="registra tions"> <table> <xsl:for-each select="registr ation[count(.|key('en try',company [1])=1]"> <xsl:sort select="company "/> <tr> <th valign="top"> <xsl:value-of select="company "/> </th> <td valign="top"> <xsl:for-each select="key('en try',current()/company)"> <xsl:sort select="last"/> <xsl:value-of select="first"/> <xsl:text> </xsl:text> <xsl:value-of select="last"/> <xsl:if test="position( )!=last()"> <br/> </xsl:if> </xsl:for-each> </td> </tr> </xsl:for-each> </table> </xsl:template>
</xsl:stylesheet>
///Peter
"Chris Kettenbach" <in**@piasd.net > wrote in message
news:8_******** ************@gi ganews.com... Do you have an example of how it should look? Thanks for your help. Chris
I am not a compiler, but I have developed a tool that may help -- use the
XPath Visualizer to play with XPath and learn it the fun way.
Cheers,
Dimitre Novatchev
P.S. By not answering your question and directing you to serious
self-training with the XPath Visualizer I am actually saving you a lot of
time -- just try it and you'll see :o)
"Dimitre Novatchev" <di******@tpg.c om.au> wrote in message news:43******** *************** @authen.white.r eadfreenews.net ... Unbalanced left <--> right parenthenses "Chris Kettenbach" <in**@piasd.net > wrote in message news:QY******** ************@gi ganews.com... Hi Peter, I get error when processing the stylesheet. It errors here.
<xsl:for-each select="registr ation[count(.|key('en try',company [1])=1]">
specifically:
Expression does not return a DOM node. registration[-->count(.|key('e ntry',company[1])=1]<--
Ideas?
Thanks, Chris
"Peter Flynn" <pe********@m.s ilmaril.ie> wrote in message news:3n******** *****@individua l.net... Chris Kettenbach wrote:
> Good Morning, > Sorry for xposting. Just need a liitle help. > I have an xml file that's generated from a database. How do I select > distinct values from a field
XML doesn't have fields -- the database did but this isn't a database any more. In XML they're called elements (they've got a lot in common with fields but they ain't the same).
> in xslt and then loop through the records and > produce output.
It looks like you need to process the information grouped by company name, and there's a technique in XSLT 1.0 for doing this called Muenchian grouping (it won't be needed in XSLT 2 because that has a built-in group-processing command, but XSLT 2 is not a Recommendation yet).
Check the XSLT FAQ for "Muenchian" to find examples.
///Peter
[Group and followup corrected to comp.text.xml]
> Example > > <registration s> > <registration > > <company>Awesom e Printers</company> > <first>John</first> > <last>Smith</last> > </registration> > <registration > > <company>Awesom e Printers</company> > <first>Bob</first> > <last>Roberts </last> > </registration> > <registration > > <company>Awesom e Printers</company> > <first>John</first> > <last>Johnson </last> > </registration> > <registration > > <company>Othe r Company</company> > <first>Tom</first> > <last>Thomas</last> > </registration> > <registration > > <company>Othe r Company</company> > <first>Dan</first> > <last>Daniels </last> > </registration> > </registrations> > +++++++++++++++ +++++++++++++++ +++++++++++++++ +++ > I want the out put to be something like this > > <table> > <tr> > <td>Company Name</td> > <td>Employees </td> > </tr> > <tr> > <td>Awesome Printers</td> > <td>John Smith<br/> > Bob Roberts<br/> > John Johnson<br/></td> > </tr> > <tr> > <td>Other Company</td> > <td>Tom Thomas<br/> > Dan Daniels<br/></td> > </tr> > </table> > > Effectively writing unique company names once and then putting only > the > employees from that company into the employee table cell.
If you scrolled down this far then you've been rewarded :-)
The trick is to use lookup keys to test the selected group of elements against, in order to pick only the first ocurrence in each group; then output the group header at that point; and only then go and process all the elements in the group to extract the detail from each of them.
The syntax is tricky because it's very compact. It selects all registration elements, but subjects each of them to the test that [the number of nodes in the union of (the current node and the first node with the current company value returned by the lookup) is equal to 1] -- in effect meaning they are one and the same node, ie the first in their company name grouping. You'll probably need to read that 3 or 4 times -- it took me a week to grok it.
<?xml version="1.0" encoding="iso-8859-1"?> <xsl:styleshe et xmlns:xsl="http ://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:key name="entry" match="registra tion" use="company"/>
<xsl:template match="/"> <html> <head> <title>Registra tions</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template>
<xsl:template match="registra tions"> <table> <xsl:for-each select="registr ation[count(.|key('en try',company [1])=1]"> <xsl:sort select="company "/> <tr> <th valign="top"> <xsl:value-of select="company "/> </th> <td valign="top"> <xsl:for-each select="key('en try',current()/company)"> <xsl:sort select="last"/> <xsl:value-of select="first"/> <xsl:text> </xsl:text> <xsl:value-of select="last"/> <xsl:if test="position( )!=last()"> <br/> </xsl:if> </xsl:for-each> </td> </tr> </xsl:for-each> </table> </xsl:template>
</xsl:stylesheet>
///Peter
Dimitre Novatchev wrote: Unbalanced left <--> right parenthenses
Quite right, it looks like something chewed off the closing parenthesis.
I pasted the code from the working file, so it may have been garbled in
transmission. The line should read
<xsl:for-each select="registr ation[count(.|key('en try',company)[1])=1]">
(that too is cut'n'paste so if that gets screwed, I'm sorry).
///Peter
"Chris Kettenbach" <in**@piasd.net > wrote in message news:QY******** ************@gi ganews.com... Hi Peter, I get error when processing the stylesheet. It errors here.
<xsl:for-each select="registr ation[count(.|key('en try',company [1])=1]">
specifically:
Expression does not return a DOM node. registration[-->count(.|key('e ntry',company[1])=1]<--
Ideas?
Thanks, Chris
"Peter Flynn" <pe********@m.s ilmaril.ie> wrote in message news:3n******** *****@individua l.net... Chris Kettenbach wrote:
Good Morning, Sorry for xposting. Just need a liitle help. I have an xml file that's generated from a database. How do I select distinct values from a field
XML doesn't have fields -- the database did but this isn't a database any more. In XML they're called elements (they've got a lot in common with fields but they ain't the same).
in xslt and then loop through the records and produce output.
It looks like you need to process the information grouped by company name, and there's a technique in XSLT 1.0 for doing this called Muenchian grouping (it won't be needed in XSLT 2 because that has a built-in group-processing command, but XSLT 2 is not a Recommendation yet).
Check the XSLT FAQ for "Muenchian" to find examples.
///Peter
[Group and followup corrected to comp.text.xml]
Example
<registration s> <registration > <company>Awesom e Printers</company> <first>John</first> <last>Smith</last> </registration> <registration > <company>Awesom e Printers</company> <first>Bob</first> <last>Roberts </last> </registration> <registration > <company>Awesom e Printers</company> <first>John</first> <last>Johnson </last> </registration> <registration > <company>Othe r Company</company> <first>Tom</first> <last>Thomas</last> </registration> <registration > <company>Othe r Company</company> <first>Dan</first> <last>Daniels </last> </registration> </registrations> +++++++++++++++ +++++++++++++++ +++++++++++++++ +++ I want the out put to be something like this
<table> <tr> <td>Company Name</td> <td>Employees </td> </tr> <tr> <td>Awesome Printers</td> <td>John Smith<br/> Bob Roberts<br/> John Johnson<br/></td> </tr> <tr> <td>Other Company</td> <td>Tom Thomas<br/> Dan Daniels<br/></td> </tr> </table>
Effectively writing unique company names once and then putting only the employees from that company into the employee table cell.
If you scrolled down this far then you've been rewarded :-)
The trick is to use lookup keys to test the selected group of elements against, in order to pick only the first ocurrence in each group; then output the group header at that point; and only then go and process all the elements in the group to extract the detail from each of them.
The syntax is tricky because it's very compact. It selects all registration elements, but subjects each of them to the test that [the number of nodes in the union of (the current node and the first node with the current company value returned by the lookup) is equal to 1] -- in effect meaning they are one and the same node, ie the first in their company name grouping. You'll probably need to read that 3 or 4 times -- it took me a week to grok it.
<?xml version="1.0" encoding="iso-8859-1"?> <xsl:styleshe et xmlns:xsl="http ://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:key name="entry" match="registra tion" use="company"/>
<xsl:template match="/"> <html> <head> <title>Registra tions</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template>
<xsl:template match="registra tions"> <table> <xsl:for-each select="registr ation[count(.|key('en try',company [1])=1]"> <xsl:sort select="company "/> <tr> <th valign="top"> <xsl:value-of select="company "/> </th> <td valign="top"> <xsl:for-each select="key('en try',current()/company)"> <xsl:sort select="last"/> <xsl:value-of select="first"/> <xsl:text> </xsl:text> <xsl:value-of select="last"/> <xsl:if test="position( )!=last()"> <br/> </xsl:if> </xsl:for-each> </td> </tr> </xsl:for-each> </table> </xsl:template>
</xsl:stylesheet>
///Peter This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Derek Fountain |
last post by:
I've been wading through the O'Reilly XSLT book. All seemed OK and sensible
until I got to the "programming" bit - variables, loops, conditions and so
on.
Do people actually use this stuff for real work? I can the advantages of,
say, being able to number pages or something, but surely to do any real
work with this syntax is very difficult?...
|
by: Tom Corcoran |
last post by:
I am working to ease updating of a html page by transforming 2 xml files. I
was going to use xslt for this and had bought 2 unopened books, wrox xslt
and o'reilly's xslt cookbook. But am now wondering if I am better of
learning XQuery instead?
Any thought and opinions would be appreciated.
Cheers - Tom.
The Architect: "Hope, it is the...
|
by: valued customer |
last post by:
What do you think is the future of efforts to reduce the "verbosity"
of XSLT, ostensibly by people who have had years of experience working
with this technology?
(example site) http://www.zanthan.com/ajm/xsltxt/docs.html
It would be interesting to hear what people think about alternative
syntaxes for XSLT (less verbose), especially from...
|
by: Chris Kettenbach |
last post by:
Good Morning,
Sorry for xposting. Just need a liitle help.
I have an xml file that's generated from a database. How do I select
distinct values from a field in xslt and then loop through the records and
produce output. Example
<registrations>
<registration>
<company>Awesome Printers</company>
<first>John</first>
|
by: darrel |
last post by:
I eventually want to pass a variable to my XSLT file, but, for now, I'm just
trying to be able to declare it globally in the XSLT file itself.
So, I added this to the top of the page:
<xsl:param name="currentPage">5</xsl:param>
BTW, this is a menu I'm creating and, as such, need to know what node it the
'current page' the site/menu is...
| |
by: Gordon Moore |
last post by:
Hi,
I'm new to using xml/xslt and although I can create an xml document
using the dataset.WriteXml statement, and I have created an xslt to
transform the xml into the output I want, I have to manually add the
xsl reference statement to the xml file.
i.e.
<?xml version="1.0" standalone="yes"?>
<?xml:stylesheet type="text/xsl"...
|
by: Thierry |
last post by:
Let's say I have the following tags in an xml:
<World>
<Country>Canada</Country>
<Hemisphere>North</Hemisphere>
<Weather climate="cold" forecast="snow">
<CommandAction>$(HOME)\calculate.py Canada North
snow</CommandAction>
</Weather>
|
by: Dormilich |
last post by:
Hi,
I'm testing my classes for a web page and I stumble upon an error I don't have a clue what it means:
Error:
Fatal error: Can't use method return value in write context in "output.php" on line 142 (line 12 in snippet)
the error is caused by this call:
empty($inSeite_inp->getValue('PAR_NAME'))
method definition see second snippet,...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
| |
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in...
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
|
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...
| |