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
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>
Bu dosyayı Source.xmlolarak kaydedin.
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('<!DOCTYPE StaffMember [', '<!ELEMENT StaffMember (#PCDATA)>', ']>')" /> <StaffMember> <xsl:value-of select="Name"/> </StaffMember> </xsl:template> </xsl:stylesheet>
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
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
Bu dosyayı Xform.vbs olarak XML belgesi ve oluşturduğunuz XSL stil sayfasıyla aynı klasöre kaydedin.
Yordamı Test Edin
Bir komut istemi açın ve üç dosyanızı içeren klasörü bulun.
Komut istemine yazın
cscript xform.vbs
.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.