Dönüştürmelerde çıkış kaçışını devre dışı bırakma

Bu makalede, dönüştürmelerde çıkış kaçışını devre dışı bırakma işlemleri gösterilmektedir.

Orijinal ürün sürümü: Microsoft XML
Özgün KB numarası: 315717

Özet

Bu adım adım makalede, XML stil sayfası dönüştürmesi gibi < and > karakterlerin çıkış kaçışını nasıl devre dışı bırakıldığı açıklanır.

Herhangi bir XSL dönüştürme çıkışının iyi biçimlendirilmiş bir belge olmasını sağlamak için, açılı ayraç karakterleri (< and >) varsayılan olarak karakter dizilerine < and > dönüştürülür. Ancak, çıkış belgesinde Belge Türü Bildirimi (DTD) oluşturmak istediğinizde bu davranış bazen istenmez:

<!DOCTYPE StaffMember [
 <!ELEMENT StaffMember (#PCDATA)>
]>

Gereksinimler

Aşağıdaki listede önerilen donanım, yazılım, ağ altyapısı ve gerekli hizmet paketleri özetlenmiştir:

  • Microsoft XML sürüm 3.0 veya üzeri

    Bu makalede, aşağıdaki konular hakkında bilgi sahibi olduğunuz varsayılır:

  • XML ve XSL dönüştürmeleri ve MSXML bileşeni

  • Visual Basic Scripting Edition (VBScript)

  • XML Belge Nesne Modeli (DOM)

XML Belgesi ve XSL Stil Sayfası Oluşturma

  1. Not Defteri gibi bir metin düzenleyicisi açın ve aşağıdaki XML'yi belgeye yapıştırın:

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="Transform.xsl"?>
    <Employee>
        <Name>Chris</Name>
    </Employee>
    
  2. Bu dosyayı Source.xmlolarak kaydedin.

  3. Metin düzenleyicinizde yeni bir dosya oluşturun ve ardından aşağıdaki XSL stil sayfasını dosyaya yapıştırın.

    Not

    İlk xsl:value-of etiketindeki disable-output-escaping="yes" özniteliği:

    <?xml version="1.0"?>
    <xsl:stylesheet 
     version="1.0" 
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
    <xsl:output method="xml" omit-xml-declaration="yes"/>
        <xsl:template match="Employee">
            <xsl:value-of 
             disable-output-escaping="yes"
             select="concat('&lt;!DOCTYPE StaffMember [',
             '&lt;!ELEMENT StaffMember (#PCDATA)&gt;',
             ']&gt;')" />
            <StaffMember>
                <xsl:value-of select="Name"/>
            </StaffMember>
        </xsl:template>
    </xsl:stylesheet>
    
  4. Bu dosyayı, oluşturduğunuz XML belgesiyle aynı klasöre Transform.xsl olarak kaydedin.

Stil Sayfasını Yürütmek için Windows Betiği Kullanma

  1. Metin düzenleyicinizde yeni bir dosya oluşturun ve ardından dosyaya aşağıdaki betiği yapıştırın: Seçenek Açık

    Dim objSource
    Dim objTransform
    Dim sResult
    
    Set objSource = CreateObject("MSXML2.DOMDocument")
    objSource.async = False
    objSource.load "Source.xml"
    
    Set objTransform = CreateObject("MSXML2.DOMDocument")
    objTransform.async = False
    objTransform.load "Transform.xsl"
    
    sResult = objSource.TransformNode(objTransform.documentElement)
    
    WScript.Echo sResult
    
  2. Bu dosyayı Xform.vbs olarak XML belgesi ve oluşturduğunuz XSL stil sayfasıyla aynı klasöre kaydedin.

Yordamı Test Edin

  1. Bir komut istemi açın ve üç dosyanızı içeren klasörü bulun.

  2. Komut istemine yazın cscript xform.vbs .

  3. Dönüştürmenin çıkışı ekranda aşağıdaki gibi görüntülenir:

    <!DOCTYPE StaffMember [<!ELEMENT StaffMember (#PCDATA)>]>
    <StaffMember>Chris</StaffMember>
    

Sorun giderme

özniteliğini disable-output-escaping kullanırken dikkatli olun. Oluşturulan < ve > karakterler eşleşmiyorsa, çıkış belgesi iyi biçimlendirilmiş XML olmayacaktır. transformNodeToObject yöntemi sonucun iyi biçimlendirilmiş olmasını gerektirir, bu nedenle kullanılırsa disable-output-escaping yöntem tamamlanamayabilir.