У меня есть большой XSD, который я обрабатываю, используя несколько шаблонов, чтобы получить новый XSD. На одном из последних шагов я хотел бы определить длину xml (на самом деле XSD), который был захвачен в переменной xsdresult.
Используя функцию длины строки, я вижу странную длину, не соответствующую переменной длине xsdresult. Размер строки/xsd превышает 52000 символов, но я вижу Длина: 9862 Что я делаю неправильно?
<!-- Catch output in variable -->
<xsl:variable name="xsdresult">
<xsl:call-template name="start"/>
</xsl:variable>
<xsl:template name="start">
<xsl:apply-templates/>
</xsl:template>
<!-- Build required doc parts -->
<xsl:variable name="docparts">
<xsl:call-template name="builddocparts"/>
</xsl:variable>
<xsl:template name="builddocparts">
Length: <xsl:value-of select="string-length(normalize-unicode($xsdresult))"/>
</xsl:template>
...
string-length
возвращает сумму длин всех узловtext()
и исключает символы всех элементов и атрибутов вашего XSD. - person zx485   schedule 13.04.2016