【问题标题】:Why XML for android is written between opening tag ? Not between the opening and closing tags like HTML.为什么 Android 的 XML 写在开始标记之间?不在 HTML 等开始和结束标签之间。
【发布时间】:2017-10-02 00:43:11
【问题描述】:

所以 XML 是 android 的标记语言。但我不明白为什么代码是写在元素的开始标签中,而不是像 HTML 一样写在元素的开始标签和结束标签之间。

我对 XML 完全是个菜鸟,非常感谢您的帮助。谢谢。

例如,这是普通的 XML,代码写在标签之间。

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

这是用于 android 的 XML,其中代码写在标签中。

<TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="This is a TextView" />

为什么不一样。

【问题讨论】:

  • 这不是开始标签。它是一个自闭合标签(参见&gt; 之前的/)。而“写在中间”的是“属性”。
  • 这不是 StackOverflow 的有效问题。如果您想了解 XML 的工作原理,可能需要使用不同的资源。

标签: android html xml


【解决方案1】:

所以 XML 是 android 的标记语言

XML 是 Android 碰巧使用的一种通用标记语言。 XML 在 Android 之前就已经存在。

但我不明白为什么代码是写在元素的开始标签中,而不是像 HTML 一样写在元素的开始标签和结束标签之间。

HTML 和 XML 都使用带有属性的嵌套元素(或 HTML 术语中的“标签”)。 Android 布局资源使用带有属性的嵌套元素。

例如,这是普通的 XML,代码写在标签之间。

这不是“正常”的 XML。那就是简单的 XML。没有要求任何 XML 文件看起来像那样,也没有要求以这种方式在 XML 中表示该数据。这是该数据在 XML 中的另一种表示形式:

<note to="Tove" from="Jani" heading="Reminder" body="Don't forget me this weekend!" />

这是另一个:

<note to="Tove" from="Jani">
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

还有一个:

<note>
  <to>Tove<from>Jani<heading>Reminder<body>Don't forget me this weekend!</body></heading></from></to>
</note>

所有这些都是完全有效的 XML。

这是用于 android 的 XML,其中代码写在标签中

在 Android 布局资源中,元素(大部分)代表 ViewViewGroup 子类,其属性定义了这些小部件和容器的外观。创建 Android 的开发人员为数据选择了这种特殊的 XML 表示形式。他们本可以做点别的。

【讨论】:

    【解决方案2】:

    在 XML 中,我们可以将元素的一些属性放在它的标签中。 例如,如果您的示例中的注释是“绝密”注释,则绝密可以作为属性“在”标签中(由您决定“绝密”是否是属性对于注释或它的内部元素):

        <note top-secret="true">
          <to>Tove</to>
          <from>Jani</from>
          <heading>Reminder</heading>
          <body>Don't forget me this weekend!</body>
        </note>
    

    TextView 是一个没有内部元素的元素(id、width 和...被决定为 TextView 的属性)。当 XML 标记没有任何内部元素时,我们可以通过在“>”字符之前放置一个斜杠来将结束标记与开始标记合并。所以 TextView 是一个元素,它的结束标签与其开始标签合并。可以这样写:

        <TextView android:id="@+id/text"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="This is a TextView"></TextView>
    

    在 Android 中,像 ScrollView 这样的视图容器具有内部元素:

        <ScrollView
          android:layout_width="match_parent"
          android:layout_height="wrap_content">
    
          <TextView android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="This is a TextView"/>
    
        </ScrollView>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 2011-06-07
      • 2016-05-24
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多