首页 \ 问答 \ NodeJs如何在控制台中显示表结构化仪表板(NodeJs how to display table structured dashboard in console)

NodeJs如何在控制台中显示表结构化仪表板(NodeJs how to display table structured dashboard in console)

我如何通过nodejs在控制台中创建一个仪表板显示屏?

例如BFGMiner有一个很好看的结构化用户界面:

在这里输入图像描述


How can I create a dashboard looking display in the console through nodejs?

For example BFGMiner has a great looking structured UI:

enter image description here


原文:https://stackoverflow.com/questions/29664085
更新时间:2023-10-28 07:10

最满意答案

你的问题不清楚是什么正确的结果,但我假设你想要每个XML元素一行<PMMOResult>

;WITH XMLNAMESPACES (DEFAULT 'pm/cnf_pte_msn.1.0.xsd')
SELECT 
Tier1.value('@startTime', 'varchar(50)') as startTime,
Tier1.value('@interval', 'int') as interval,
Tier2.value('((.)/MO/baseId)[1]', 'varchar(50)') as baseId,
Tier2.value('((.)/MO/localMoid)[1]', 'varchar(50)') as localMoid,
Tier2.value('((.)/NE_1.0/M8000C0)[1]', 'float') as M8000C0,
Tier2.value('((.)/NE_1.0/M8000C1)[1]', 'float') as M8000C1,
Tier2.value('((.)/NE_1.0/M8000C2)[1]', 'float') as M8000C2,
Tier2.value('((.)/NE_1.0/M8000C3)[1]', 'float') as M8000C3,
Tier2.value('((.)/NE_1.0/M8000C4)[1]', 'float') as M8000C4,
Tier2.value('((.)/NE_1.0/M8000C5)[1]', 'float') as M8000C5
FROM  @RawXML.nodes('/OMeS/PMSetup') as T1(Tier1)
cross apply @RawXML.nodes('/OMeS/PMSetup/PMMOResult') as T2(Tier2);

LiveDemo

输出:

╔══════════════════════════════════╦══════════╦════════╦═══════════╦═════════╦═════════╦═════════╦═════════╦═════════╦═════════╗
║            startTime             ║ interval ║ baseId ║ localMoid ║ M8000C0 ║ M8000C1 ║ M8000C2 ║ M8000C3 ║ M8000C4 ║ M8000C5 ║
╠══════════════════════════════════╬══════════╬════════╬═══════════╬═════════╬═════════╬═════════╬═════════╬═════════╬═════════╣
║ 2015-10-21T00:00:00.000+00:00:00 ║       60 ║  12345 ║     67890 ║    1601 ║    1597 ║       4 ║       0 ║       0 ║    0    ║
║ 2015-10-21T00:00:00.000+00:00:00 ║       60 ║ 678910 ║    109876 ║     860 ║     858 ║       2 ║       0 ║       0 ║    0    ║
║ 2015-10-21T00:00:00.000+00:00:00 ║       60 ║ 111213 ║    131211 ║    3533 ║    3504 ║      29 ║       0 ║       0 ║    0    ║
╚══════════════════════════════════╩══════════╩════════╩═══════════╩═════════╩═════════╩═════════╩═════════╩═════════╩═════════╝

编辑:

更简单,不需要CROSS APPLY

;WITH XMLNAMESPACES (DEFAULT 'pm/cnf_pte_msn.1.0.xsd')
SELECT 
Tier2.value('../@startTime', 'varchar(50)') as startTime,
Tier2.value('../@interval', 'int') as interval,
Tier2.value('((.)/MO/baseId)[1]', 'varchar(50)') as baseId,
Tier2.value('((.)/MO/localMoid)[1]', 'varchar(50)') as localMoid,
Tier2.value('((.)/NE_1.0/M8000C0)[1]', 'float') as M8000C0,
Tier2.value('((.)/NE_1.0/M8000C1)[1]', 'float') as M8000C1,
Tier2.value('((.)/NE_1.0/M8000C2)[1]', 'float') as M8000C2,
Tier2.value('((.)/NE_1.0/M8000C3)[1]', 'float') as M8000C3,
Tier2.value('((.)/NE_1.0/M8000C4)[1]', 'float') as M8000C4,
Tier2.value('((.)/NE_1.0/M8000C4)[1]', 'float') as M8000C5
FROM @RawXML.nodes('/OMeS/PMSetup/PMMOResult') as T2(Tier2);

LiveDemo


Your question is not clear what correct result is, but I assume you want one row per XML Element <PMMOResult> :

;WITH XMLNAMESPACES (DEFAULT 'pm/cnf_pte_msn.1.0.xsd')
SELECT 
Tier1.value('@startTime', 'varchar(50)') as startTime,
Tier1.value('@interval', 'int') as interval,
Tier2.value('((.)/MO/baseId)[1]', 'varchar(50)') as baseId,
Tier2.value('((.)/MO/localMoid)[1]', 'varchar(50)') as localMoid,
Tier2.value('((.)/NE_1.0/M8000C0)[1]', 'float') as M8000C0,
Tier2.value('((.)/NE_1.0/M8000C1)[1]', 'float') as M8000C1,
Tier2.value('((.)/NE_1.0/M8000C2)[1]', 'float') as M8000C2,
Tier2.value('((.)/NE_1.0/M8000C3)[1]', 'float') as M8000C3,
Tier2.value('((.)/NE_1.0/M8000C4)[1]', 'float') as M8000C4,
Tier2.value('((.)/NE_1.0/M8000C5)[1]', 'float') as M8000C5
FROM  @RawXML.nodes('/OMeS/PMSetup') as T1(Tier1)
cross apply @RawXML.nodes('/OMeS/PMSetup/PMMOResult') as T2(Tier2);

LiveDemo

Output:

╔══════════════════════════════════╦══════════╦════════╦═══════════╦═════════╦═════════╦═════════╦═════════╦═════════╦═════════╗
║            startTime             ║ interval ║ baseId ║ localMoid ║ M8000C0 ║ M8000C1 ║ M8000C2 ║ M8000C3 ║ M8000C4 ║ M8000C5 ║
╠══════════════════════════════════╬══════════╬════════╬═══════════╬═════════╬═════════╬═════════╬═════════╬═════════╬═════════╣
║ 2015-10-21T00:00:00.000+00:00:00 ║       60 ║  12345 ║     67890 ║    1601 ║    1597 ║       4 ║       0 ║       0 ║    0    ║
║ 2015-10-21T00:00:00.000+00:00:00 ║       60 ║ 678910 ║    109876 ║     860 ║     858 ║       2 ║       0 ║       0 ║    0    ║
║ 2015-10-21T00:00:00.000+00:00:00 ║       60 ║ 111213 ║    131211 ║    3533 ║    3504 ║      29 ║       0 ║       0 ║    0    ║
╚══════════════════════════════════╩══════════╩════════╩═══════════╩═════════╩═════════╩═════════╩═════════╩═════════╩═════════╝

EDIT:

Even simpler, no need CROSS APPLY:

;WITH XMLNAMESPACES (DEFAULT 'pm/cnf_pte_msn.1.0.xsd')
SELECT 
Tier2.value('../@startTime', 'varchar(50)') as startTime,
Tier2.value('../@interval', 'int') as interval,
Tier2.value('((.)/MO/baseId)[1]', 'varchar(50)') as baseId,
Tier2.value('((.)/MO/localMoid)[1]', 'varchar(50)') as localMoid,
Tier2.value('((.)/NE_1.0/M8000C0)[1]', 'float') as M8000C0,
Tier2.value('((.)/NE_1.0/M8000C1)[1]', 'float') as M8000C1,
Tier2.value('((.)/NE_1.0/M8000C2)[1]', 'float') as M8000C2,
Tier2.value('((.)/NE_1.0/M8000C3)[1]', 'float') as M8000C3,
Tier2.value('((.)/NE_1.0/M8000C4)[1]', 'float') as M8000C4,
Tier2.value('((.)/NE_1.0/M8000C4)[1]', 'float') as M8000C5
FROM @RawXML.nodes('/OMeS/PMSetup/PMMOResult') as T2(Tier2);

LiveDemo

相关问答

更多
  • 你的问题不清楚是什么正确的结果,但我假设你想要每个XML元素一行 : ;WITH XMLNAMESPACES (DEFAULT 'pm/cnf_pte_msn.1.0.xsd') SELECT Tier1.value('@startTime', 'varchar(50)') as startTime, Tier1.value('@interval', 'int') as interval, Tier2.value('((.)/MO/baseId)[1]', 'varchar(50) ...
  • 使用FOR XML时,需要使用“@”指定属性值。 见下文: SELECT Product_Department AS '@DEP' ,Product_Category AS '@CAT' ,Code AS '@Code' ,[Description] AS '@DESC' ,Price AS '@PRICE' FROM Product FOR XML PATH ('Product'), ROOT ('ProductList') 如下所述,您也可以使用“类型”: S ...
  • 您无法在XML Raw()指定列值。 所以你需要做的是从select查询中选择所需的列并将结果转换为XML ,如下所示 - 架构 DECLARE @temp table (ID int, [STATUS] [varchar](100) NOT NULL, [TIME] [varchar](100), AMOUNT int); INSERT @temp (ID, [STATUS], [TIME], AMOUNT) VALUES (1, 'COMPLETE', '02:31', 2355),(2, 'ACCE ...
  • .nodes()调用将您的XML转换为XML片段列表 - 并且SQL Server中的“列表”始终是一个表 - 因此这实际上是表别名 ( x )和内部构造的列别名 ( y ) XML片段表( .nodes()每个匹配一个“行”) 如果您将使用.nodes('/root )`,那么您将获得包含以下行的“伪表”: 表x y ---------------- one two three 因为你使用的是.nodes('/root/row') ,所以 ...
  • 如果没有带有1:n示例的样本数据和预期输出,那么它将在魔术玻璃灯泡中读取...... 无论如何,这个 SELECT 1 AS [Line/@ID] ,'Michael' AS [LineItem/@Name] ,24 AS [Numbers/Num/@Number] FOR XML PATH('Lines') 将完全生成您指定的输出:
  • 您发布的XML不完整 - 假设您的表的XML已完成,您可以尝试这样的事情( 顺便说一下:作为旁注:我建议永远不要为您的列使用保留字;不要调用您的列XML - 这是一个保留的关键字;使用XmlDoc或类似的...... ) -- define the two XML namespaces we need to use to get to the data in question ;WITH XMLNAMESPACES ('http://schemas.microsoft.com/office/2006/xml ...
  • 你的XQuery应该是: SELECT PersonID, Properties.value('(/PropertyList/Property[@Name="Class"])[1]','NVARCHAR(50)') FROM dbo.Person 这有帮助吗? 更新:为了让其他人更清楚 - 我在/PropertyList/Property[@Name="Class"]表达式周围添加了括号,这样这将评估为可能的值列表,然后是[1]之后的括号将选择该列表的第一个(通常是唯一的)值(作为单个) ...
  • 使用: WHERE xmlcolumn.value('(/path/to/tag)[1]', 'int') = @QueryValue 将数据类型更改为适当的值。 有关详细信息,请参阅文档 - 特别是处理XML数据类型时可用的方法... Use: WHERE xmlcolumn.value('(/path/to/tag)[1]', 'int') = @QueryValue Change the data type to whatever is appropriate. For more info, se ...
  • 它看起来像你试图查询Windows Active Directory(功能上显示为LDAP)。 默认情况下,AD不会允许匿名查询 - 您必须使用可信的用户名和密码进行身份验证。 此外,您需要检查您的系统管理员以确保您具有适当的基本值(“DC = abc,DC = domain,DC = popo,DC = local”)。 It looks to me like you're trying to query against a Windows Active Directory (which function ...
  • 这应该是你的诀窍: SQL: SELECT Word Sub, ( SELECT Word_Expansion AS Sub FROM Word_Expansion WE WHERE WE.fk_WordOID = W.WordOID FOR XML PATH(''), type ) FROM Word W FOR XML P ...

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。