如何从外部HTML页面解析和过滤XML数据?

时间:2019-07-04 16:53:58

标签: javascript php jquery xml

我试图根据XML节点“内部代码”来解析+过滤嵌入在HTML页面中的XML提要,以用于某些作业,然后将具有与“ Chubb”匹配的内部代码的这些作业输出到HTML页面上。

XML文件被嵌入到HTML页面中,并且我试图使用Jquery Ajax请求来解析XML数据,但是似乎我的代码无法从提供的URL中读取XML。 XML数据所在的网页未输出原始XML数据。该网页的源代码如下:screenshot - html page source code

当我查看页面源并将其内容(减去html和标签)复制到本地.xml文件中时,我的代码可以成功解析和过滤数据。我猜测环绕XML数据的HTML标记导致我的代码无法正常运行。

这是我的Jquery和HTML代码

$(document).ready(function(){
    
  $.ajax({
      url: https://exampleurl.com/xmlfile,
      type: 'get',
      crossDomain: true,
      dataType: 'xml',
      success: function(data) {
          $(data).find('jobs job').each(function(){
              var job_internal_code = $(this).find('internalcode').text();
              var job_title = $(this).find('title').text();
              var department = $(this).find('department').text();
              var job_url = $(this).find('url').text();
              var city = $(this).find('city').text();
              var state = $(this).find('state').text();
              var country = $(this).find('country').text();
          
          if(job_internal_code.startsWith('Chubb')){
              $(".tpd-feed ul").append(
           
                $('<li />', {
                html:
                '<a class="the-job-title" href="' + job_url + '" target="blank_"><h3>' + job_title + '</h3></a>' +
                '<div class="job-desc"><div class="location"><p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 0c-4.198 0-8 3.403-8 7.602 0 4.198 3.469 9.21 8 16.398 4.531-7.188 8-12.2 8-16.398 0-4.199-3.801-7.602-8-7.602zm0 11c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3z"/></svg> ' 
                 + city + ', ' + state + ', ' + country + '</p>' +
                '</div> <!--end location-->' +
                '<div class="dept"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16 6h-8v-6h8v6zm-10 12h-6v6h6v-6zm18 0h-6v6h6v-6zm-11-7v-3h-2v3h-9v5h2v-3h7v3h2v-3h7v3h2v-5h-9zm2 7h-6v6h6v-6z"/></svg> '
                + department +
                '</div></div>'
                }).attr('class','job-single'),
                
              );
              }
          });

      },
      error: function(){
          $('.tpd-feed').text('Failed to get feed')
      }
  })

});
<!DOCTYPE html>
<html>
    <head>
        <title> Reading XML with jQuery</title>
    </head>
    <body>

        <div class="tpd-feed">
            <ul>
                
            </ul>
        </div>
        <script src="https://code.jquery.com/jquery-3.4.1.js"></script>
        <script src="js/tpd-feed.js"></script>
    </body>

</html>

我的问题是: 有没有更好的方法来解析和过滤嵌入在HTML网页中的XML数据?如果可以的话,我也愿意用PHP达到预期的结果。

谢谢你们的帮助!

0 个答案:

没有答案