XML'deki bir etiket bloğunu nasıl yorumlayabilirim?


795

XML'deki bir etiket bloğunu nasıl yorumlayabilirim?

Ie <staticText>Aşağıdaki kodda nasıl ve içindeki her şeyi nasıl yorumlayabilirim ?

  <detail>
    <band height="20">
      <staticText>
        <reportElement x="180" y="0" width="200" height="20"/>
        <text><![CDATA[Hello World!]]></text>
      </staticText>
    </band>
  </detail>

Kullanabilirim <!-- staticText-->ama //Java ve C gibi sadece tek etiketler (bildiğim gibi) için, Java ve C'de nasıl /** comment **/kullanılabilir gibi bir şey istiyorum , bu yüzden XML kodunun daha uzun bloklarını yorumlayabilirim.


11
Bilmen gerekir bir xml içinde yorumlar dosyası olan XmlComment Çeşidi düğümleri kabul . Eğer xml dosyasını yüklerseniz, bu yorumlar düğümler yüklenecektir ve yüklenen içeriği ayrıştırırken bunlardan kaçınmak veya filtrelemek size kalmıştır.
El Bayames

XML yorumları HTML'deki yorumlara benzer.
Somnath Muluk

Yanıtlar:


1136

Bu yorum stilini birden çok satırda (HTML'de de bulunur) kullanabilirsiniz

<detail>
    <band height="20">
    <!--
      Hello,
         I am a multi-line XML comment
         <staticText>
            <reportElement x="180" y="0" width="200" height="20"/>
            <text><![CDATA[Hello World!]]></text>
          </staticText>
      -->
     </band>
</detail>

59
Bununla ilgili bir uyarı, iç içe yorumlarda sorun yaşayacağınızdır. Şunlardan birini yapmanız gerekir: (1) yuvalanmış yorumun kapanışındaki ">" sonunu kaldırmalı veya (2) yuvalanmış yorumları tamamen kaldırmalısınız.
inkar edilemezrob

1
Bazı XML okuyucular (yani CruiseControl.NET) sonunda ">" kaldırıldı olan bir iç içe yorum okuma sorunları olabilir gibi (1) ile ilgili sorunlar var. Yorumları tamamen kaldırmak zorunda kaldım.
inkar edilemezrob

14
@coderob Aslında, XML yorumlarında bile izin verilmez. Bu nedenle, tüm ->
0fnt

Android Studio'da bloğu seçin, ardından yorum yapmak için Ctrl + Eğik Çizgi (veya Ctrl + Üst Karakter + Eğik Çizgi) tuşlarına basın.
Kamran Bigdely

1
--Bu tip yorumlarda sorun yaşanabilir . - ->Bir yorumu geçici olarak iç içe yerleştirmeniz gerekiyorsa kullanmak daha iyidir. Yine de HTML'de (xml'nin bir alt kümesi), --açıklamanın içine dahil olmak üzere geçerli değildir. Genellikle ondan kurtulabilirsiniz, ancak bazen bir soruna neden olur. Yani, birden temiz kalabilmesi için mutlaka -yorumlardaki üst üste, ben geçici yuvalarına bir yorum gerekirse, ben 2 kapanış arasında boşluk yerleştiririz --arasında -->. Bu, XML ve HTML'deki rastgele garip hataları önler.
SherylHohman

169

Metni mevcut olmayan bir işleme talimatıyla kapatabilirsiniz, örneğin:

<detail>
<?ignore
  <band height="20">
    <staticText>
      <reportElement x="180" y="0" width="200" height="20"/>
      <text><![CDATA[Hello World!]]></text>
    </staticText>
  </band>
?>
</detail>

İç içe işlem yönergelerine izin verilmez ve '?>' İşlem yönergesini sonlandırır (bkz. Http://www.w3.org/TR/REC-xml/#sec-pi )


11
Bu yöntem tam olarak ihtiyacım olan şekilde çalıştı ve dahili yorumlarda bile çalışma avantajı sağladı. Herhangi bir karmaşık kodunuz varsa bunu kabul edilen cevap üzerinde kullanırım.
Sean Branchaw

100 üzerinden 100 size @Kasper
Shiva krishna Chippa

2
Bu, içeride hatalı biçimlendirilmiş XML ile bile çalışır. Bu, bir bloğu geçici olarak yorumlamak için harika bir çözümdür.
Maksimum

146

Eğer <!-- -->sözdiziminde hatalarınız olduğu için sorarsanız, büyük olasılıkla ]]>yorumun ortasında yer alan CDATA bölümü (ve orada bölüm). Bu gerektiğini fark etmez, ama ideal ve gerçek dünya (XML işleme söz konusu olduğunda) bazen biraz ayrı olabilir.

Şunu da değiştirmeye çalışın ]]>:

  <!--detail>
    <band height="20">
      <staticText>
        <reportElement x="180" y="0" width="200" height="20"/>
        <text><![CDATA[Hello World!]--><!--]></text>
      </staticText>
    </band>
  </detail-->

Akla gelen başka bir şey: XML'inizdeki bir yerde iki tire varsa, yorum hemen burada biter:

<!-- <a> This is strange -- but true!</a> -->
--------------------------^ comment ends here

Bu oldukça yaygın bir tuzak. SGML'nin yorumları işleme biçiminden miras alınır. ( Bu konudaki XML spesifikasyonunu okuyun )


1
Evet ... Her zaman tüm tuhaflıkları hatırlamak için SGML ve XML yorumlarının ayrıştırılmasını zor buldum ...
Delan Azabani

1
Çift tire ile garip gerçeği belirttiğiniz için çok teşekkürler -! Bir yorum yaptığım bir dava vardı. Eski yorum sonunu kaldırmama rağmen başarısız oldu. Örnek: <! - ... <code> <! - Eski yorum </code> ... ->
dwettstein

Eğer yerine sınırlama çift tire Geçici çözüm için --birlikte -&#45;. Çoğu durumda kullanılmadan sonra aynı şekilde çalışmalıdır.
mik

48

Aslında, çok satırlı veya etiketli <! --...--> biçimini kullanabilirsiniz:

<!--
  ...
  ...
  ...
-->

25

Yorum yapmak için buraya aşağıdaki gibi yazmamız gerekiyor:

<!-- Your comment here -->

IntelliJ Idea ve Eclipse için kısayollar

Windows ve Linux için:

Tek bir satırı yorumlamak için kısayol:

Ctrl + /

Birden çok satırı yorumlamak için kısayol:

Ctrl+ Shift+/

Mac için:

Tek bir satırı yorumlamak için kısayol:

cmnd + /

Birden çok satırı yorumlamak için kısayol:

cmnd+ Shift+/

Unutmamanız gereken bir şey, bir XML etiketinin niteliğine yorum yapamayacağınızdır. Örneğin:

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    <!--android:text="Hello.."-->
    android:textStyle="bold" />

Burada, TextViewbir XML Etiketi ve textbu etiketin bir niteliğidir. XML Etiketinin niteliklerine yorum yapamazsınız. Tüm XML Etiketini yorumlamanız gerekir. Örneğin:

<!--<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Hello.."
    android:textStyle="bold" />-->

11

Bunu kullanarak verileri kolayca yorumlayabilirsiniz:

<!-- 
 <data>
        <data-field1></data-field1>
        <data-field2></data-field2>
        <data-field3></data-field3>
 </data>
-->

xml'de yorum yapma yöntemi.


1

XML için sözdizimi: <!--Your comment-->

Örneğin.

   <?xml version = "1.0" encoding = "UTF-8" ?>
   <!--here is your comment :) -->
   <class_list>   
   <student>
   <name></name>
   <grade>A</grade>
   </student>
   </class_list>

XML Yorum Kuralları

Comments cannot appear before XML declaration.
Comments may appear anywhere in a document.
Comments must not appear within attribute values.
Comments cannot be nested inside the other comments.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.