XSLT 1.0 を使用して XML の下に構築する方法がわかりません
<values>
<field name="abc"></field>
<field name="nch"></field>
</values>
要素の開始タグと終了タグの間にスペースがあってはなりません。できるだけ早く助けてください。
ありがとう。
XSLT 1.0 を使用して XML の下に構築する方法がわかりません
<values>
<field name="abc"></field>
<field name="nch"></field>
</values>
要素の開始タグと終了タグの間にスペースがあってはなりません。できるだけ早く助けてください。
ありがとう。
Saxon では、出力方法を「html 」に変更する必要があります。
例:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<values>
<field name="abc"></field>
<field name="nch"></field>
</values>
</xsl:template>
</xsl:stylesheet>
vs2010 で機能する回避策を次に示します。
例 1:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<values>
<field name="abc">
<xsl:value-of select="substring-before(' ',' ')"/>
</field>
<field name="nch">
<xsl:value-of select="substring-before(' ',' ')"/>
</field>
</values>
</xsl:template>
</xsl:stylesheet>
例 2:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:element name="values">
<xsl:element name="filed">
<xsl:attribute name="name">abc</xsl:attribute>
<xsl:value-of select="substring-before(' ',' ')"/>
</xsl:element>
<xsl:element name="filed">
<xsl:attribute name="name">nch</xsl:attribute>
<xsl:value-of select="substring-before(' ',' ')"/>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
出力:
<?xml version="1.0" encoding="utf-8"?>
<values>
<filed name="abc"></filed>
<filed name="nch"></filed>
</values>
<x></x>
との違い<x/>
は純粋に字句であり、最終的な出力はシリアライザーによって実行されるため、通常はXSLTプロセッサーで制御できません。
一部のXSLTプロセッサ(組み込みのシリアライザを使用)では、空の要素の完全な形式を出力できる場合があります。ただし、Saxonなどの他のプロセッサでは、これは(簡単に)不可能です。