---
title: "Är detta en giltig XML-sträng?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/xml/188945-är-detta-en-giltig-xml-sträng"
topic: "XML"
topic_url: "https://www.webforum.nu/amne/xml"
author: "KoTTeN"
published: "2012-01-06T13:52:01.000Z"
updated: "2012-01-08T22:52:22.000Z"
replies: 3
views: 1185
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/xml/188945-är-detta-en-giltig-xml-sträng"
---

# Är detta en giltig XML-sträng?

## #1 — KoTTeN, 2012-01-06T13:52Z

Ska med hjälp av XSLT formatera en fil från en kund så vi kan importera det i vår databas. Men jag har än så länge inte lyckats något bra. Ett utdrag ur kundens fil:

```
<[B]ss:[/B]Worksheet [B]ss:[/B]Name="Tabell1">
		<Row [B]ss:[/B]Height="12.8409">
			<Cell>
				<Data [B]ss:[/B]Type="Number">13925</Data>	
			</Cell>
			<Cell [B]ss:[/B]Index="7">
				<Data [B]ss:[/B]Type="String">1 TMPK</Data>
			</Cell>
		</Row>
</[B]ss:[/B]Worksheet>
```

Notera det som är i fetstil, dvs. "ss:" före varje atributt. Är det giltiga att ha detta? Hur ska jag ex. få fram värdet ur "Name" från "Worksheet" när det är
"ss:" före?

Permalänk: https://www.webforum.nu/p/188945

## #2 — Jon@s, 2012-01-06T15:50Z

Ja, det har att göra med namespace. Se <http://www.w3schools.com/xml/xml_namespaces.asp>

Men däremot måste det nog finnas en slut-tagg på Cell i båda fallen.

Permalänk: https://www.webforum.nu/p/2290113

## #3 — KoTTeN, 2012-01-08T15:50Z

Tack för svaret! Det var jag som var lite snabb att skriva (glömde \</code\> - nu redigerat). 

Hur gör jag för att med XSLT få fram "ss:Worksheet"? Jag har försökt med följande: 

```
<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

[B]<xsl:template match="ss:Worksheet[@Name=Tabell]">[/B]
  <html>
  <body>
  <h2>Test</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Kundnummer</th>
      <th>Beställning</th>
   </tr>
    
     <xsl:for-each select="Row">
    <tr>
      <td><xsl:value-of select="Cell[1]/Data"/></td>
      <td><xsl:value-of select="Cell[2]/Data"/></td>
    </tr>
    </xsl:for-each>
    
  </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>
```

Men får inget resultat alls.

Permalänk: https://www.webforum.nu/p/2290174

## #4 — SPiN, 2012-01-08T22:52Z

Vad använder du för parser? Är den 2.0-kompatibel kan du gå direkt mot det lokala namnet:

```
<xsl:for-each select="//*[local-name() = 'Row']">
...
</xsl:for-each>
```

Om det är en 1.0-parser (typ alla webläsare) så får du peka mot rätt schema och namespace-deklaration. Det ser ut som en MS Office-genererad XML (Excel SpreadSheet), så kanske fungerar följande rakt av:

```
<xsl:stylesheet ... xmlns:os="urn:schemas-microsoft-com:office:spreadsheet">
   <xsl:for-each select="//os:Row">
...
   </xsl:for-each>
</xsl:stylesheet>
```

Permalänk: https://www.webforum.nu/p/2290187

---

Tråden på webben: https://www.webforum.nu/amne/xml/188945-är-detta-en-giltig-xml-sträng
