Aracılığıyla paylaş


İzlenecek yol: XSLT stil sayfasında hata ayıklama

Bu kılavuzdaki adımlar XSLT hata ayıklayıcısını kullanmayı gösterir. Adımlar değişkenleri görüntülemeyi, kesme noktalarını ayarlamayı ve kodda adım atmayı içerir. Hata ayıklayıcı, kodu bir kerede bir satır yürütmenize olanak tanır.

Bu kılavuza hazırlanmak için önce iki örnek dosyayı yerel bilgisayarınıza kopyalayın. Bunlardan biri stil sayfası, biri de stil sayfasına giriş olarak kullanacağımız XML dosyasıdır. Bu kılavuzda, kullandığımız stil sayfası maliyeti ortalama kitap fiyatının altında olan tüm kitapları bulur.

Not

XSLT hata ayıklayıcısı yalnızca Visual Studio'nun Professional ve Enterprise sürümlerinde kullanılabilir.

Hata ayıklamayı başlatma

  1. Dosya menüsünden Dosyayı Aç'ı>seçin.

  2. Aşağıdaki average.xsl dosyasını bulun ve Aç'ı seçin.

    Stil sayfası XML düzenleyicisinde açılır.

  3. Belge özellikleri penceresinin Giriş alanında gözat düğmesine (...) tıklayın. (Eğer Özellikler penceresi görünmüyor, düzenleyicideki açık dosyada herhangi bir yere sağ tıklayın ve özellikler'i seçin.)

  4. books.xml dosyasını bulun ve Aç'ı seçin.

    Bu, XSLT dönüşümü için kullanılan kaynak belge dosyasını ayarlar.

  5. Average.xsl'nin 12. satırında bir kesme noktası ayarlayın. Bunu birden çok yoldan biriyle yapabilirsiniz:

    • 12. satırdaki düzenleyicinin kenar boşluğuna tıklayın.

    • 12. satırda herhangi bir yere tıklayın ve F9 tuşuna basın.

    • Başlangıç etiketine xsl:if sağ tıklayın ve Kesme Noktası Kesme Noktası> Ekle'yi seçin.

      Insert breakpoint in XSL file in Visual Studio

  6. Menü çubuğunda XML>Başlat XSLT Hata Ayıklama'yı seçin (veya Alt+F5 tuşuna basın).

    Hata ayıklama işlemi başlar.

    Düzenleyicide, hata ayıklayıcısı stil sayfasının öğesinde xsl:if konumlandırılır. Düzenleyicide below-average.xml adlı başka bir dosya açılır; bu, books.xml giriş dosyasındaki her düğüm işlenirken doldurulacak olan çıkış dosyasıdır.

    Visual Studio penceresinin alt kısmında OtomatikLer, YerelLer ve İzleme 1 pencereleri görüntülenir. Yerel Ayarlar penceresi tüm yerel değişkenleri ve bunların geçerli değerlerini görüntüler. Bu, stil sayfasında tanımlanan değişkenleri ve hata ayıklayıcının o anda bağlam içinde olan düğümleri izlemek için kullandığı değişkenleri içerir.

Gözcü penceresi

Giriş dosyası işlenirken değerlerini inceleyebilmemiz için Watch 1 penceresine iki değişken ekleyeceğiz. (Ayrıca İzlemek istediğiniz değişkenler zaten varsa değerleri incelemek için yerel ayarlar penceresi.)

  1. Hata Ayıkla menüsünden Windows>Watch>Watch 1'i seçin.

    Watch 1 penceresi görünür hale gelir.

  2. Ad alanına yazın $bookAverage ve Enter tuşuna basın.

    Değişkenin $bookAverage değeri Değer alanında görüntülenir.

  3. Sonraki satırda Ad alanına yazın self::node() ve Enter tuşuna basın.

    self::node() geçerli bağlam düğümünü değerlendiren bir XPath ifadesidir. XPath ifadesinin self::node() değeri ilk kitap düğümüdür. Bu, dönüşümde ilerledikçe değişir.

  4. self::node() Düğümü genişletin ve ardından değerinin priceolduğu düğümü genişletin.

    Watch window during XSLT debugging in Visual Studio

    Geçerli kitap düğümü için kitap fiyatının değerini görebilir ve değerle $bookAverage karşılaştırabilirsiniz. Kitap fiyatı ortalamanın altında olduğundan, hata ayıklama işlemine xsl:if devam ettiğinizde koşul başarılı olmalıdır.

Kodda adım adım ilerleyin

  1. Devam etmek için F5 tuşuna basın.

    İlk kitap düğümü koşulu karşıladığı xsl:if için , kitap düğümü below-average.xml çıkış dosyasına eklenir. Hata ayıklayıcı, stil sayfasındaki öğeye yeniden konumlandırılana xsl:if kadar yürütülmeye devam eder. Hata ayıklayıcısı artık books.xml dosyasındaki ikinci kitap düğümünde konumlandırılır.

    Saat 1 penceresinde, self::node() değer ikinci kitap düğümüne dönüşür. Fiyat öğesinin değerini inceleyerek fiyatın ortalamanın üzerinde olduğunu ve bu nedenle koşulun xsl:if başarısız olması gerektiğini belirleyebilirsiniz.

  2. Devam etmek için F5 tuşuna basın.

    İkinci kitap düğümü koşulu karşılamadığındanxsl:if, kitap düğümü aşağıdaki-average.xml çıktı dosyasına eklenmez. Hata ayıklayıcı, stil sayfasındaki öğeye yeniden konumlandırılana xsl:if kadar yürütülmeye devam eder. Hata ayıklayıcısı artık books.xml dosyasındaki üçüncü book düğümde konumlandırılır.

    Saat 1 penceresinde, self::node() değer üçüncü kitap düğümüne dönüşür. öğesinin değerini price inceleyerek fiyatın ortalamanın altında olduğunu belirleyebilirsiniz. Koşul xsl:if başarılı olmalıdır.

  3. Devam etmek için F5 tuşuna basın.

    Koşul karşılandığındanxsl:if, üçüncü kitap aşağıdaki average.xml çıktı dosyasına eklenir. XML belgesindeki tüm kitaplar işlendi ve hata ayıklayıcı durduruldu.

Örnek dosyalar

İzlenecek yol aşağıdaki iki dosya tarafından kullanılır.

average.xsl altı

<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" encoding="utf-8"/>
  <xsl:template match="/">
    <xsl:variable name="bookCount" select="count(/bookstore/book)"/>
    <xsl:variable name="bookTotal" select="sum(/bookstore/book/price)"/>
    <xsl:variable name="bookAverage" select="$bookTotal div $bookCount"/>
    <books>
      <!--Books That Cost Below Average-->
      <xsl:for-each select="/bookstore/book">
        <xsl:if test="price &lt; $bookAverage">
          <xsl:copy-of select="."/>
        </xsl:if>
      </xsl:for-each>
    </books>
  </xsl:template>
</xsl:stylesheet>

Books.xml

<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
  <book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>