javascript - 无法使用 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;
推荐阅读
- google-cloud-firestore - Firebase Firestore 规则并不总是适用于网络
- xml - 在linux中使用脚本从xml文件中提取句子
- reactjs - Reactjs Apollo Client Graphql 并不总是在标题中附加我的刷新 cookie
- ajax - 使用 MVC 自定义路由时 Ajax 调用停止工作
- ios - folly::detail::function::FunctionTraits 中的 NSInternalInconsistencyException
- c# - 从 MainWindow.xaml.vb 设置用户控件的变量值
- c - 输出后换行
- javascript - 使用香草 javascript 无限滚动
- node.js - Node.JS 服务器崩溃
- docker-compose - 无法在 Visual Studio 2019 中使用 Azure Function 项目构建 docker compose