View previous topic - View next topic |
Author |
Message |
XMark Guitar playin' black mage
Joined: 30 May 2002 Posts: 870 Location: New Westminster, BC, Canada
|
Posted: Tue May 24, 2005 12:32 am Post subject: XSLT question |
[quote] |
|
Okay, let's say that I have an XML data structure something like this:
Code: |
<weapons>
<weapon id = "is">
<name>iron sword</name>
<str>23</str>
</weapon>
<weapon id = "ba">
<name>battle axe</name>
<str>34</str>
</weapon>
</weapons>
<enemies>
<enemy id = "eg">
<name>Evil Guard</name>
<weapon>is</weapon>
</enemy>
</enemies>
|
Now, if I make an XSLT file, and I'm looping through the enemies with an <xsl:for-each> loop, how do I get it to show the name of the weapon rather than the id?
note: this is just a quick-and-dirty example file, I'm aware that the id naming scheme isn't very practical. _________________ Mark Hall
Abstract Productions
I PLAYS THE MUSIC THAT MAKES THE PEOPLES FALL DOWN!
|
|
Back to top |
|
|
XMark Guitar playin' black mage
Joined: 30 May 2002 Posts: 870 Location: New Westminster, BC, Canada
|
Posted: Tue May 24, 2005 3:23 am Post subject: |
[quote] |
|
Figured it out. It's all about the <xsl:key> command.
Geez, all this studying I'm doing for my XML exam day after tomorrow is enough to make me hate the letter X... _________________ Mark Hall
Abstract Productions
I PLAYS THE MUSIC THAT MAKES THE PEOPLES FALL DOWN!
|
|
Back to top |
|
|
Nephilim Mage
Joined: 20 Jun 2002 Posts: 414
|
Posted: Tue May 24, 2005 5:25 am Post subject: |
[quote] |
|
I think what you want to do is use xsl:value-of to select out of the weapons table using XPath notation. I haven't done this before, so I could be totally wrong on this, but I suspect it would look something like this:
Code: |
<xsl:value-of select="/weapons/weapon[@id=current()/weapon]">
|
Highly, highly, highly untested code. What I think this might say is this: select the root-level 'weapons' node, then the 'weapon' children of that node whose 'id' attribute is the same as the current enemy node's weapon value. _________________ Visit the Sacraments web site to play the game and read articles about its development.
|
|
Back to top |
|
|
XMark Guitar playin' black mage
Joined: 30 May 2002 Posts: 870 Location: New Westminster, BC, Canada
|
Posted: Fri Jun 03, 2005 8:46 pm Post subject: |
[quote] |
|
I got another question...
How would I make a php file that simply grabs an XML file and an XSL file and outputs what would be generated from them?
I've been looking through php.net's documentation but they seem to just go into long-winded explanations on every detail of the parser commands without providing any simple examples of their use. _________________ Mark Hall
Abstract Productions
I PLAYS THE MUSIC THAT MAKES THE PEOPLES FALL DOWN!
|
|
Back to top |
|
|
LeoDraco Demon Hunter
Joined: 24 Jun 2003 Posts: 584 Location: Riverside, South Cali
|
Posted: Sat Jun 04, 2005 12:22 am Post subject: |
[quote] |
|
I've not messed around with any of this, so this might not be what you are looking for. However...
After looking through the manual, this looks more or less like what you are after. Specifically, example 2. _________________ "...LeoDraco is a pompus git..." -- Mandrake
|
|
Back to top |
|
|
XMark Guitar playin' black mage
Joined: 30 May 2002 Posts: 870 Location: New Westminster, BC, Canada
|
Posted: Sat Jun 04, 2005 12:23 am Post subject: |
[quote] |
|
Yeah, I tried that, but it appears that my web host's version of PHP doesn't have that particular library. _________________ Mark Hall
Abstract Productions
I PLAYS THE MUSIC THAT MAKES THE PEOPLES FALL DOWN!
|
|
Back to top |
|
|
LeoDraco Demon Hunter
Joined: 24 Jun 2003 Posts: 584 Location: Riverside, South Cali
|
Posted: Sat Jun 04, 2005 12:27 am Post subject: |
[quote] |
|
Have you tried the XSL library? There's a rather crude example under its constructor documentation.
Edit: Also, if you knew that your web server had an xslt processor installed, you could always try execing it, but that might be dangerous, if you are not careful... _________________ "...LeoDraco is a pompus git..." -- Mandrake
|
|
Back to top |
|
|