javascript - 使用 jquery/javascript 将 XML 转换为 HTML

标签 javascript jquery html xml

我有一些 XML,我需要将其作为文本显示在 div 中。
我们能否将此 XML 转换为如下格式。

<root>
<field>
  <label>Have you invested before</label>
  <value>No</value>
</field>
<field>
  <label>Are you looking to invest in the next 6 months</label>
  <value>Maybe</value>
</field>
<field>
  <label>What investments are you interested in</label>
  <value>Carbon Credits, Green Investments</value>
</field>
<field>
  <label>How much are you looking to invest</label>
  <value>£50,000 -  £100,000</value>
</field>
</root>

输出应该如下所示:

您之前投资过吗:没有
您是否打算在接下来的 6 个月内进行投资:也许
您对什么投资感兴趣:碳信用、绿色投资
您希望投资多少:50,000 英镑 - 100,000 英镑

这可以使用 Jquery/javascript 吗??

它应该像下面的 HTML 一样呈现。

<div class="how-to">
<div class="how-text">
    <h3>Your Requirements</h3>
        <ul class="requirements">         
<li><label class="field-l">Have you invested before:</label> <span>No</span></li>         
<li><label class="field-l">Are you looking to Invest in the next 6 months:
</label>      <span>Maybe</span></li>         
<li><label class="field-l">What Investments are you interested in:</label> 
<span>Carbon  Credits,Green Investments</span></li>
 <li><label class="field-l">How much are you looking to invest:</label>
  <span>£50,000 -  £100,000</span></li>
      <li class="link-pad"><a href="index.html" class="requirements">
     Change  your requirements</a></li>
    </ul>
<div class="clear"></div>
 </div>
  </div>

最佳答案

第 1 步:验证您的 xml

您的 xml 无效。您可以检查它是否有效,例如,在 online validator 中.它们有很多,我链接的这个只是一个例子。

对于这个答案,我假设我们有如下一些 xml

<root>
  <field>
      <label>Have you invested before</label>
      <value>No</value>
  </field>
  <field>
      <label>Are you looking to invest in the next 6 months</label>
      <value>Maybe</value>
  </field>
  <field>
      <label>What investments are you interested in</label>
      <value>Carbon Credits, Green Investments</value>
  </field>
  <field>
      <label>How much are you looking to invest</label>
      <value>£50,000 -  £100,000</value>
  </field>
</root>

第二步:获取xml,可能通过ajax

我认为这是显而易见的,但我还是会在此处包括在内。

$.get('/url_of_the_xml_resource')
  .done(function(data){
    // this function is executed if the request was sucessfull
  })
  .fail(function(){
    // this function is executed if the request fails
  })
;

第三步:解析xml

您可以使用 jQuery 的 $.parseXML解析它并将原始数据转换为 XML 文档

$.get('/url_of_the_xml_resource')
  .done(function(data){
    // parse the xml
    data = $.parseXML(data);
    //
    // do anything you want with the parsed data
  })
  .fail(function(){
    alert('something went wrong!');
  })
;

第 4 步:玩转数据

现在我们有一个可以使用的 xml 文档。以下 snipnet 假设我们有一个定义列表,<dl>标记,在我们的 HTML 布局中,应该在解析数据后执行,就像上一步一样。

// first we query the HTML document to get the list element
// and store it for later use
var list = $('dl');
// data is a xml document now, so we query it...
$(data)
  // and search for all <field> elements
  .find('field')
  // now we can play with each <field>
  .each(function(index, element){
    // as example we query & store the field
    var field = $(element)
    // get the values we want
    var label = field.find('label').text()
    var value = field.find('value').text()
    // and append some html in the <dl> element we stored previously
    list
      .append('<dt>'+label+': </dt>')
      .append('<dd>'+value+'</dd>')
    ;
  })
;

结论

jQuery是你想要使用的。它的可链接性质使得横切 DOM 就像切黄油一样。我希望这个答案对你有用。

作为附加引用,请参阅 full example on jsfiddle

关于javascript - 使用 jquery/javascript 将 XML 转换为 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16113188/

相关文章:

javascript - 替换 JSFL 中的填充颜色

javascript - 当输入聚焦时,React Native 有条件地渲染部分 View

javascript - 如何将自动生成的 HTML 导出为 PDF

html - 将媒体查询样式应用于媒体打印?

javascript - Jest - 调用模拟函数不计算在内

javascript - 使用 javascript 或 jquery 禁用鼠标双击

javascript 无法在 Joomla 3 上运行

JQuery:淡出,执行操作,然后淡入

javascript - 在 akka 中定义额外的路径

javascript - 在新菜单打开之前关闭页面上的其他菜单