微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用 JS 获取 XML 文件值

如何解决无法使用 JS 获取 XML 文件值

我需要将 XML 文件中的一些项目作为参数传递给 res.renderer() 函数(如下所示)。我目前可以使用此示例 XML 实现此目的:

示例.xml

 <breakfast_menu>
   <food>
     <name>Belgian Waffles</name>
    </food>
   <food>
     <name>StrawBerry Belgian Waffles</name>
   </food>

...使用此代码

 const parseString = require('xml2js').parseString;
 const axios = require('axios');

let url = 'https://www.w3schools.com/xml/simple.xml';
app.get('/dynamic_view',function(req,res,next){

     //GET THE XML URL
     axios.get(url)

       //PARSE THE XML FILE
       .then(({ data }) => {
         parseString(data,(err,{ breakfast_menu: { food } }) => {
           if (err) return next(err)
           
           let food_names = [];
           //IteraTE OVER NAME VALUES OF FOODS,PUSH THEM TO AN ARRAY
           food.map(({name}) => {
             console.log(name);
             food_names.push(name[0]);
           });

           //PASS THE ARRAY WITH VALUES TO res.renderer()
           res.render('dynamic',{
              names: food_names
           });
         });        
       })
  })

但是,我无法从具有更多子元素的另一个 XML 中导航和传递值

问题.xml

<RSS xmlns="https://url/RSS" version="5.0">
    <channel>
          <description>Main channel</description>
          <link/>

          <product>
          <id>4bc1d0ac9276</id>
          <description></description>
          </product>

           <product>
          <id>4bc1d0ac9276</id>
          <description></description>
          </product>

    </channel>
</RSS>

如何访问问题 XML 文件的“产品”元素,将它们推送到数组并将其传递给 res.renderer,与包含 Sample.xml 文件的工作代码片段中显示的方式相同?我在使用 JS 浏览 Problem.xml 的 XML 结构时遇到问题。

为此苦苦挣扎了一段时间,感谢任何帮助!

解决方法

我是这样解决的:

parseString(data,(err,file) => {
            if (err) return next(err)
            title=file.rss.channel[0].item;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。