Question

Je voudrais prendre des données à partir des fichiers XML et les transformer en un nouveau document XML. Cependant, je ne veux pas la définition d'un espace de noms dans le XSLT pour se produire dans le document de résultat.

En d'autres termes:

source:

<Namespace:Root xmlns:Namespace="http://www.something.com">

stylesheet:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:Namespace="http://www.something.com">

résultat:

<resultRoot xmlns:Namespace="http://www.something.com">
<!--I don't want the Namespace definition above-->

J'utilise msxsl pour la transformation.

Était-ce utile?

La solution

Vous pouvez utiliser l'attribut de l'exclude-result-prefixes élément pour éviter l'émission de xsl:stylesheet préfixes d'espace de noms dans le document de sortie:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
         xmlns:prefix1="http://www.something.com"
         exclude-result-prefixes="prefix1">

</xsl:stylesheet>

Pour supprimer plusieurs espaces de noms à partir du document de sortie les spécifier séparés par des espaces:

exclude-result-prefixes="prefix1 prefix2 prefix3"

De la spécification XSLT :

  

Quand une feuille de style utilise une déclaration d'espace de noms uniquement aux fins d'aborder l'arbre source, en spécifiant le préfixe dans l'attribut exclude-result-préfixes évitera les déclarations d'espace de noms superflus dans l'arborescence du résultat.

Autres conseils

La réponse de divo était déjà choisi, et à juste titre.

Mais si vous êtes intéressé à creuser plus profond, consultez le « Trop de namespaces » section dans mon opus magnum sur le thème très populaire des « espaces de nommage dans XSLT ». (Oui, c'est censé être la langue dans la joue. :-))

Utiliser l'extension-element-préfixes = "espace de noms"

comme:

<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:datetime="http://exslt.org/dates-and-times"
xmlns:str="http://exslt.org/strings"
xmlns:exsl="http://exslt.org/common"
xmlns:uw="xalan://ru.sbtc.util.XSLUtil"
extension-element-prefixes="exsl str datetime uw"
version="1.0">
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top