2016-09-22 6 views
1

に追加することはできません。エラー:属性と名前空間ノードは、変換を行おうとするとき、私は次のエラーを取得しています親要素

以下

Attribute and namespace nodes cannot be added to the parent element after a text, comment, pi, or sub-element node has already been added.

はI変換

を行うために使用している機能です以下は
Public Function Transform(ByVal doc As XmlNode, ByVal stylesheet As XmlDocument) As String 
    Dim trans As XslCompiledTransform = New XslCompiledTransform() 
    trans.Load(stylesheet) 
    Dim settings As XmlWriterSettings = New XmlWriterSettings() 
    settings.OmitXmlDeclaration = False 
    settings.ConformanceLevel = ConformanceLevel.Fragment 
    settings.CloseOutput = False 

    Dim writer As System.IO.StringWriter = New System.IO.StringWriter() 
    trans.Transform(doc, XmlWriter.Create(writer, settings)) 

    Return writer.ToString() 
End Function 

私のXSLで問題のあるコード

<xsl:template name="Calendar"> 
    <xsl:variable name="dateRef"><xsl:value-of select="@dateRef"/></xsl:variable> 
     <table border="0" cellpadding="0" cellspacing="0"> 
      <tr> 
       <td style="padding-top: 10px"> 
         <span style="position:absolute; display:none" fieldName="{//Form/@name}.{Name}" initialDate="{@initialDate}" futureBound="{@futureBound}" pastBound="{@pastBound}"> 
          <xsl:attribute name="ID">date<xsl:value-of select="$dateRef"/></xsl:attribute> 
         </span> 
         <!-- When I comment out the line below my page loads, but the intended content doesn't --> 
         <xsl:attribute name="ID">date<xsl:value-of select="$dateRef"/></xsl:attribute> 
         <xsl:call-template name="calendarContents"/> 
       </td> 
      </tr> 
     </table> 
</xsl:template> 

答えて

1

問題である:エラーが示すように、「テキスト、コメント、π、またはサブ要素ノード」は、xsl:attributeとその属性を受け取る要素の間に介入することはできません。

ソリューション:すぐあなたが属性を追加するためにtd要素の下になるまでxsl:attribute文を移動します。

関連する問題