如何用jQuery中的xml文件属性创建Javascript数组

如何解决如何用jQuery中的xml文件属性创建Javascript数组

|| 我正在使用jqGrid,但无法从xml文件获取属性。所以我想有一个类似下面的XML数组。请帮我从下面的xml文件创建一个数组 jqGrid支持的数组格式
var mydata = [
    {id:\"1\",invdate:\"2007-10-01\",name:\"test\",note:\"note\",amount:\"200.00\",tax:\"10.00\",total:\"210.00\"},{id:\"2\",invdate:\"2007-10-02\",name:\"test2\",note:\"note2\",amount:\"300.00\",tax:\"20.00\",total:\"320.00\"},{id:\"3\",invdate:\"2007-09-01\",name:\"test3\",note:\"note3\",amount:\"400.00\",tax:\"30.00\",total:\"430.00\"},{id:\"4\",invdate:\"2007-10-04\",{id:\"5\",invdate:\"2007-10-05\",{id:\"6\",invdate:\"2007-09-06\",{id:\"7\",{id:\"8\",invdate:\"2007-10-03\",{id:\"9\",total:\"430.00\"}
    ];
我的xml
<?xml-stylesheet type=\"text/xsl\" href=\"csmclientiir.xsl\"?>
<csmclient product=\"abc\"   date=\"4/26/11 2:05 PM\">
<system>
<osname>Linux
</osname>
<hostname>AbhishekNix
</hostname>
<release>2.6.18-128.el5
</release>
<filesystem>
    <file mount=\'/home/hp1\' home=\'(innfs2:/vol/home/shome/home/hp1)\' total=\'1717567488\' free=\'644306780\' used=\'1073260708\' percentage=\'62\' />
    <file mount=\'/home/par21\' home=\'(innfs2:/vol/home/shome/home/par21)\' total=\'1717567488\' free=\'644306780\' used=\'1073260708\' percentage=\'62\' />
    <file mount=\'/home/h231\' home=\'(innfs2:/vol/home/shome/home/h231)\' total=\'1717567488\' free=\'644306780\' used=\'1073260708\' percentage=\'62\' />
    <file mount=\'/home/avallin1\' home=\'(innfs2:/vol/home/shome/home/avallin1)\' total=\'1717567488\' free=\'644306780\' used=\'1073260708\' percentage=\'62\' />
    <file mount=\'/home/park\' home=\'(innfs2:/vol/home/shome/home/park)\' total=\'1717567488\' free=\'644306780\' used=\'1073260708\' percentage=\'62\' />
    <file mount=\'/home/sp1\' home=\'(innfs2:/vol/home/shome/home/sp1)\' total=\'1717567488\' free=\'644306780\' used=\'1073260708\' percentage=\'62\' />
    <file mount=\'/home/ganga1\' home=\'(innfs2:/vol/home/shome/home/ganga1)\' total=\'1717567488\' free=\'644306780\' used=\'1073260708\' percentage=\'62\' />
    <file mount=\'/home/nbp1\' home=\'(innfs2:/vol/home/shome/home/nbp1)\' total=\'1717567488\' free=\'644306780\' used=\'1073260708\' percentage=\'62\' />
</filesystem>
</system>
<product>
<showtime>Tue Apr 26 14:05:23 2011
</showtime>
</product>
</csmclient>
如何在上述xml中为
csmclient>system>filesystem>file
下的属性创建jQuery数组或JS中的JS数组,例如:
mount
free
total
used
percentage
属性 更新
var filesystem=[];
$(xml).find(\'file\').each(function(){ 
    console.info($(this).attr(\'total\')+\",\"+$(this).attr(\'free\')+\",\"+$(this).attr(\'used\')+\",\"+$(this).attr(\'percentage\'));
    var row={};
    row.total=$(this).attr(\'total\');
    row.free=$(this).attr(\'free\');
    row.used=$(this).attr(\'used\');
    row.percentage=$(this).attr(\'percentage\');
    filesystem.push(row);
});
    

解决方法

        
var data = [];

$(xml).find(\'file\').each(function(){ 
  var row = {};
  row.mount = this.getAttribute(\"mount\");
  // ...
  data.push(row);
});
    ,        使用jQuery XSLT插件将xml转换为正确的格式。
XML --> [XSLT Transformation] --> JS
源(XML)和输出(JS)之间的这一层使您可以自由地维护,更改和扩展源和输出,而无需创建意大利面条。 从XSLT到JSON的教程可以在这里找到 编辑:一个示例实现看起来像
<xsl:stylesheet 
  version=\"1.0\"
  xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"
>
  <xsl:output method=\"text\" />

  <xsl:template match=\"/\">
    <xsl:apply-templates select=\"csmclient/system/filesystem\" />
  </xsl:template>

  <xsl:template match=\"filesystem\">
    <xsl:text>[</xsl:text>
    <xsl:apply-templates select=\"file\" />
    <xsl:text>]</xsl:text>
  </xsl:template>

  <xsl:template match=\"file\">
    <xsl:text>{</xsl:text>
    <xsl:apply-templates select=\"@*\" />
    <xsl:text>}</xsl:text>
    <xsl:if test=\"position() &lt; last()\">,</xsl:if>
  </xsl:template>

  <xsl:template match=\"file/@*\">
    <xsl:value-of select=\"concat(\'&quot;\',name(),\'&quot;:\')\" />
    <xsl:choose>
      <xsl:when test=\"string(number(.)) = \'NaN\'\">
        <xsl:value-of select=\"concat(\'&quot;\',.,\'&quot;\')\" />
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select=\".\" />
      </xsl:otherwise>
    </xsl:choose>
    <xsl:if test=\"position() &lt; last()\">,</xsl:if>
  </xsl:template>
</xsl:stylesheet>
    

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

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-