解析XML以获取节点值

时间:2019-07-25 00:10:16

标签: javascript angularjs xml-parsing xml-to-json

当调用如下所示的端点时,得到的XML响应是16 MB数据

<?xml version="1.0" encoding="UTF-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://example.org/edmx">
<edmx:DataServices>
    <Schema xmlns="http://example.org/edm" Namespace="PlatformForScience" Alias="pfs">
     <EntityType Name="VHP_BI_SAMPLE" BaseType="pfs.SAMPLE">
         <Property Name="JAX_SAMPLE_COMMENTS" Type="Edm.String"></Property>
         <NavigationProperty Name="SAMPLE_CMQREQUEST" Type="pfs.CMQ_REQUEST"
                             Partner="REV_SAMPLE_CMQREQUEST_VHP_BI_SAMPLE">
    </EntityType>

我需要解析XML并寻找<EntityType Name="VHP_BI_SAMPLE" BaseType="pfs.SAMPLE">并获取与NavigationProperty Name =“ SAMPLE_CMQREQUEST”关联的Partner。我不确定如何使用Angular JS解析XML或将其转换为JSON,以便可以访问属性,该怎么做

我不确定如何将github中的X2JS包安装到我的AngularJS项目中

1 个答案:

答案 0 :(得分:0)

对XML进行一些修改以使其有效:

<EntityType Name="VHP_BI_SAMPLE" BaseType="pfs.SAMPLE">
         <Property Name="JAX_SAMPLE_COMMENTS" Type="Edm.String">
         </Property>
         <NavigationProperty Name="SAMPLE_CMQREQUEST" Type="pfs.CMQ_REQUEST"
                             Partner="REV_SAMPLE_CMQREQUEST_VHP_BI_SAMPLE">
        </NavigationProperty>
</EntityType>

以下xpath表达式

EntityType[@Name="VHP_BI_SAMPLE"][@BaseType="pfs.SAMPLE"]/descendant::NavigationProperty[@Name="SAMPLE_CMQREQUEST"]/@Partner

将选择

  

REV_SAMPLE_CMQREQUEST_VHP_BI_SAMPLE

我相信这就是您想要的。