1

我有一个产品列表,我想根据用户从 3 个选项中的选择返回给用户。更重要的是,这必须是一个静态页面,没有比 javascript、HTML 和 XML 更花哨的东西。该表格将遵循以下内容:

<label for="field_1">How much are you spending?</label><select name="field_1" id="cf_field_1" class="cformselect" >
            <option value="sub10">Less than £10</option>
            <option value="10-20">£10 - £20</option>
            <option value="20-30">£20 - £30</option>
            <option value="30-40">£30 - £40</option>
        </select>

<label for="field_2">Colour?</label><select name="field_2" id="cf_field_2" class="cformselect" >
            <option value="red">Red</option>
            <option value="blue">Blue</option>
            <option value="yellow">Yellow</option>
        </select>

<label for="field_3">What is most important?</label><select name="field_3" id="cf_field_3" class="cformselect" >
            <option value="taste">Taste</option>
            <option value="look">How it looks</option>
            <option value="transport">How easy it is to carry</option>
        </select>

有 7 种可能的产品,而且通常有不止一种符合所选标准 - 但有时也没有合适的产品。有了我的问题,就有 48 个可能的结果。可能会及时添加更多产品。

返回将是格式化文本中的产品描述(很高兴将其保存在 HTML 中而不是 XML 中)。

我认为 XML 看起来像:

<?xml version="1.0" encoding="ISO-8859-1"?>
<productset>
  <product>
    <name>Prod 1</name>
    <value>sub10</value>
    <value>10-20</value>
    <colour>red</colour>
    <colour>blue</colour>
    <colour>yellow</colour>
    <feature>taste</feature>
    <body>
      <p>Lorem ipsum</p>
      <p>
        <a href="/prod_1.html"></a>
      </p>
    </body>
  </product>
  <product>
    <name>Prod 2</name>
    <value>20-30</value>
    <colour>red</colour>
    <colour>yellow</colour>
    <feature>taste</feature>
    <body>
      <p>Lorem ipsum</p>
      <p>
        <a href="/prod_2.html"></a>
      </p>
    </body>
  </product>
  <product>
    <name>Prod 3</name>
    <value>sub10</value>
    <value>30-40</value>
    <colour>red</colour>
    <colour>yellow</colour>
    <feature>carry</feature>
    <body>
      <p>Lorem ipsum</p>
      <p>
        <a href="/prod_3.html"></a>
      </p>
    </body>
  </product>
</productset>

我是这个级别的新手,因此对于如何获得正确的产品返回任何和所有帮助将不胜感激。

4

2 回答 2

0

您可能只需使用 xpath ( http://www.w3schools.com/xpath/xpath_examples.asp )就可以做您需要的事情,尽管让浏览器兼容有点麻烦!

于 2013-05-15T11:24:00.680 回答
0

假设您将检索到的 XML 字符串放在一个名为的变量中xml

var parser = new DOMParser();
var xml_obj = parser.parseFromString(xml, "text/xml");
// now xml_obj is a DOM document
var products = xml_obj.getElementsByTagName("products");
// then process it as you need
for(var i=0; i < products.length; i++){
    console.log("Found product: " + products[i].getElementsByTagName("name")[0].textContent);       
}

这需要一些工作,因此您可以考虑使用 jQuery 或一些类似的库,这应该会减少很多访问值的代码。请参阅示例。

于 2013-05-15T11:15:26.853 回答