2012-06-19 22 views
8

Nhà phát triển của tôi đã mã hóa danh sách Sản phẩm bằng Bảng HTML. Mã xuất hiện như sau:Microdata ItemID để xác định các phần tử nằm rải rác trong toàn bộ bảng HTML/doc HTML

<table> 
<tr class="name"> 
<td>Product Name #1</td><td>Product Name #2</td><td>Product Name #3</td> 
</tr> 
<tr class="price"> 
<td>Product Price #1</td><td>Product Price #2</td><td>Product Price #3</td> 
</tr> 
<tr class="brand"> 
<td>Product Brand #1</td><td>Product Brand #2</td><td>Product Brand #3</td> 
</tr> 
</table> 

Bạn hiểu ý tưởng. Nhìn bề ngoài nó trông hoàn hảo, nhưng khi cố gắng đánh dấu qua schema.org, tôi đang gặp phải vấn đề, rằng các thuộc tính sản phẩm không tồn tại là các phần tử HTML lồng nhau gọn gàng, nhưng được trải đều trên bảng. Có cách nào để sử dụng thuộc tính Vi dữ liệu ItemID để đảm bảo mỗi thương hiệu và giá được liên kết với đúng tên sản phẩm không?

Cái gì như:

<tr class="name"> 
<td itemscope itemtype="http://www.schema.org/Product" itemID="Product1">Product Name #1</td> 
<td itemscope itemtype="http://www.scema.org/Product" itemID="Product2">Product Name #2</td> 

vv, vv Bất cứ suy nghĩ? Tôi sẽ có mã lại các trang để thực hiện công việc này không?

Trả lời

6

Có, itemid là cách phù hợp để thực hiện việc này. Ví dụ của bạn sẽ trông giống như sau:

<table> 
    <tr class="name"> 
    <td itemscope itemtype="http://www.schema.org/Product" itemid="Product1"> 
     <span itemprop="name">Product Name #1</span> 
    </td> 
    <td itemscope itemtype="http://www.schema.org/Product" itemid="Product2"> 
     <span itemprop="name">Product Name #2</span> 
    </td> 
    </tr> 
    <tr class="price"> 
    <td itemscope itemtype="http://www.schema.org/Product" itemid="Product1"> 
     <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
     <span itemprop="price">Product Price #1</span> 
     </div> 
    </td> 
    <td itemscope itemtype="http://www.schema.org/Product" itemid="Product2"> 
     <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
     <span itemprop="price">Product Price #2</span> 
     </div> 
    </td> 
    </tr> 
</table> 

Bằng cách sử dụng lại cùng một mục, bạn đang nói với trình phân tích cú pháp microdata mà bạn đang nói về cùng một mục ở các phần khác nhau của trang.

+0

[ 'itemid'] (http://www.w3.org/TR/2013/NOTE-microdata-20131029/# attr-itemid) "phải có giá trị là URL hợp lệ". – unor

+0

@unor URL tương đối là các mục hợp lệ –

+0

Ah, điều đó đúng. – unor

6

Thực ra, itemid không phải là cách chính xác để thực hiện việc này. Không giống như RDF, mô hình phân tích cú pháp microdata không kết hợp những thứ có cùng itemid.

Thay vào đó, bạn nên sử dụng thuộc tính itemref.

Ví dụ:

<div itemscope itemtype="http://schema.org/Product" itemref="foo"></div> 
<div id="foo" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
    <span itemprop="price">Product Price #1</span> 
</div> 

Bạn có thể kiểm tra dữ liệu vĩ mô sử dụng http://foolip.org/microdatajs/live/

Các vấn đề liên quan