node.js xml to json objects
node.js xml to json objects
在Node中,我试图将XML结构迁移到JSON中,这将允许我访问没有数组的特定节点,但猜测问题对于所有ECMA相关语言都是常见的
基本上我在寻找一种方法来做到这一点:
var siteSettings = configuration.settings.siteSettings
var site1 = siteSettings[0];
var site1Name = site1.name;
这里的XML是这样的
<configuration>
<settings>
<siteSettings>
<siteSetting name="site1" path="path1"/>
<siteSetting name="site2" path="path2"/>
<siteSettings>
</settings>
<modules>
<module name="module1" action="action1">
<module name="module2" action="action2">
</modules>
</configuration>
然而,我发现的XML解析器模块做了这样的事情(伪):
configuration:{
settings:
[siteSettings:
[siteSetting: {name: "site1", path: "path1"},
siteSetting: {name: "site2", path: "path2"}]};
你有什么建议吗?我走对了吗?
我想你在找这样的东西:
{
"configuration":{
"settings":{
"siteSettings":[
{
"name":"site1",
"path":"path1"
},
{
"name":"site2",
"path":"path2"
}
]
},
"modules":[
{
"name":"module1",
"path":"action1"
},
{
"name":"module2",
"path":"action2"
}
]
}
}
如果可以假设XML格式永远不会改变,那么就可以规范化从XML解析器接收到的数据。这是一个基于psuedo XML的示例。
// Example of parsed XML
var xml = {
configuration: {
settings: [{
siteSettings: [{
siteSetting: {name: "site1", path: "path1"}
},{
siteSetting: {name: "site2", path: "path2"}
}
]
}]
}
};
var rawSiteSettings = xml.configuration.settings[0].siteSettings;
var siteSettings = [];
// Normalize siteSettings from XML
for(var i=0; i<rawSiteSettings.length; i++){
siteSettings.push(rawSiteSettings[i].siteSetting);
}
console.log(siteSettings); // this would equal [{name:"site1"}, {name:"site2"} ect...]
// Helper to search object by value
var getPropertyByName = function(data, value){
for(var prop in data){
if(data.hasOwnProperty(prop)){
if(data[prop].name === value){ // Checking by name only
return data[prop];
}
}
}
};
var firstSite = getPropertyByName(siteSettings, "site1");
var firstSiteName = firstSite.name;
var firstSitePath = firstSite.path;
console.log('Name: ' + firstSiteName); // site1
console.log('Site Path: ' + firstSitePath); // path1
编辑:你需要滚动。
编辑2:我的意思是:你正在采取'设置'和'siteSettings',这两个数组内的对象,并把它们变成一个可行的格式。
您可以使用这个简单的节点模块xml2js请参阅以下连结:https://www.npmjs.com/package/xml2js
相关文章:
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用JQuery解析JSON嵌套数组
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何使用json将对象列表从java转换为javascript
- 如何使用 node.js 比较两个 json 数组
- 如何将JSON数据导入我的ejs模板
- JSON and javascript objects
- Facebook JSON empty objects
- jQuery, JSON objects and .NET WebServices
- node.js xml to json objects
- Angular2 JSON Objects
- Python to Javascript JSON objects (Flask)
- JSON.stringify() and JavaScript Objects
- Stream of JSON objects