最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

从XML文件获取属性值

网站源码admin15浏览0评论

从XML文件获取属性值

从XML文件获取属性值

我正在尝试从OPCUA NodeSet中检索UAObjectType的所有NodeId。

这里是xml文件:.Ua.Robotics.NodeSet2.xml

这是我正在使用的代码:

 NodeName = select("//ns1:UAObjectType/ns1:DisplayName/text()", ns);
  NodeId = select(String("//ns1:UAObjectType/@NodeId") , ns);
  fs.writeFileSync("Names.xml" , NodeName )
  fs.writeFileSync("Ids.xml", NodeId)
  console.log(NodeId);
  if (mapper["ObjectType"] != null) {
    var otypes = {};
    for (i = 0 ; i<NodeName.length ; i++){
        add(otypes , NodeName[i] , NodeId[i]);
    }
  }

这是我在Ids.xml文件中得到的输出:


 NodeId="ns=1;i=1001", NodeId="ns=1;i=15035", NodeId="ns=1;i=15048", NodeId="ns=1;i=15051"

这是我想要的输出:

ns=1;i=1001, ns=1;i=15035 , ns=1;i=15048 , ns=1;i=15051

您知道如何解决吗?

感谢大家的关注。

回答如下:

假设您有权使用XPath 2.0处理器(Saxon-JS吗?xpath.js吗?):

string-join(//*[name()="UAObjectType"]/@NodeId,",")

测试:https://raw.githubusercontent/OPCFoundation/UA-Nodeset/master/Robotics/Opc.Ua.Robotics.NodeSet2.xml

输出:'ns=1;i=1002,ns=1;i=1004,ns=1;i=16601,ns=1;i=16794,ns=1;i=1019,ns=1;i=1022,ns=1;i=1013,ns=1;i=17230,ns=1;i=17233,ns=1;i=1003,ns=1;i=17725,ns=1;i=17793,ns=1;i=1011,ns=1;i=1018,ns=1;i=18175'

或使用XPath 1.0,在每个UAObjectType上循环并连接@NodeIdstring(./@NodeId))的每个字符串。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论