我试图弄清楚如何在每次更新时将损坏的xml文件转换为JSON?xml文件被破坏,所以创建一个函数JSON是行不通的。我试图使用jc --xml,但文件当然没有正确格式化。我是新的编码,尝试构建我的第一个应用程序。到目前为止,这是一个疯狂的经历哈哈。这里有两个主要的东西。节点和站。xml文件的位置/var/log/xlxd.xml,我想在其中生成JSON文件/var/http/www/log/dashboard. json
服务器是Debian
我从这个网站上学到了很多,几个月来我的第一个应用程序的工作。一些事情要注意,我已经学会了。不要开始一个项目,而不看数据的来源第一哈哈。
?xml version="1.0" encoding="UTF-8"?>
<Version>2.5.3</Version>
<XLX207 linked peers>
</XLX207 linked peers>
<XLX207 linked nodes>
<NODE>
<Callsign>K9TON B</Callsign>
<IP>144.</IP>
<LinkedModule>A</LinkedModule>
<Protocol>YSF</Protocol>
<ConnectTime>Thursday Thu Dec 7 00:33:05 2023</ConnectTime>
<LastHeardTime>Saturday Sat Dec 9 22:39:02 2023</LastHeardTime>
</NODE>
<NODE>
<Callsign>AG7AZ B</Callsign>
<IP>184.</IP>
<LinkedModule>A</LinkedModule>
<Protocol>YSF</Protocol>
<ConnectTime>Saturday Sat Dec 9 02:06:34 2023</ConnectTime>
<LastHeardTime>Saturday Sat Dec 9 02:06:34 2023</LastHeardTime>
</NODE>
<NODE>
<Callsign>K9TON D</Callsign>
<IP>98.</IP>
<LinkedModule>C</LinkedModule>
<Protocol>DCS</Protocol>
<ConnectTime>Saturday Sat Dec 9 04:07:43 2023</ConnectTime>
<LastHeardTime>Saturday Sat Dec 9 04:07:43 2023</LastHeardTime>
</NODE>
<NODE>
<Callsign>K9TON B</Callsign>
<IP>98.</IP>
<LinkedModule>A</LinkedModule>
<Protocol>YSF</Protocol>
<ConnectTime>Saturday Sat Dec 9 04:43:07 2023</ConnectTime>
<LastHeardTime>Saturday Sat Dec 9 17:52:30 2023</LastHeardTime>
</NODE>
<NODE>
<Callsign>NC1D B</Callsign>
<IP>68.</IP>
<LinkedModule>C</LinkedModule>
<Protocol>DCS</Protocol>
<ConnectTime>Saturday Sat Dec 9 11:05:38 2023</ConnectTime>
<LastHeardTime>Saturday Sat Dec 9 22:21:38 2023</LastHeardTime>
</NODE>
<NODE>
<Callsign>AG7AZ B</Callsign>
<IP>184.</IP>
<LinkedModule>C</LinkedModule>
<Protocol>DCS</Protocol>
<ConnectTime>Saturday Sat Dec 9 17:38:07 2023</ConnectTime>
<LastHeardTime>Saturday Sat Dec 9 18:27:56 2023</LastHeardTime>
</NODE>
<NODE>
<Callsign>N9MAS B</Callsign>
<IP>47.</IP>
<LinkedModule>A</LinkedModule>
<Protocol>YSF</Protocol>
<ConnectTime>Saturday Sat Dec 9 18:40:11 2023</ConnectTime>
<LastHeardTime>Saturday Sat Dec 9 18:42:34 2023</LastHeardTime>
</NODE>
</XLX207 linked nodes>
<XLX207 heard users>
<STATION>
<Callsign>NC1D </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 22:39:02 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>AG7AZ </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 22:37:33 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>K9TON </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 22:31:53 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>NC1D / JOEL</Callsign>
<Via node>NC1D B</Via node>
<On module>C</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 22:21:40 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KA5JKI </Callsign>
<Via node>KA5JKI B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 19:55:27 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KB9MQD </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 19:29:03 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KG4ISH </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 19:28:29 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KK7NLO </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 19:07:40 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KA5JKI </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 18:47:19 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>N9MAS </Callsign>
<Via node>N9MAS B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 18:42:34 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>AG7AZ / ID52</Callsign>
<Via node>AG7AZ B</Via node>
<On module>C</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 18:28:05 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KQ4DZY </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 14:02:10 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KO4ZUL </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 13:49:44 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>WH6GVN </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 9 00:54:04 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KG4ISH </Callsign>
<Via node>KG4ISH B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Friday Fri Dec 8 23:57:25 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>K7TTM </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Friday Fri Dec 8 21:50:40 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KK7OVZ </Callsign>
<Via node>KK7OVZ B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Friday Fri Dec 8 18:44:11 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>AG7AZ </Callsign>
<Via node>AG7AZ B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Friday Fri Dec 8 18:44:00 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KI7ZNH </Callsign>
<Via node>KI7ZNH B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Friday Fri Dec 8 17:45:03 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KO4ZUL </Callsign>
<Via node>KO4ZUL B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Friday Fri Dec 8 16:50:46 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>DH1EM / 4946</Callsign>
<Via node>DH1EM B</Via node>
<On module>C</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Thursday Thu Dec 7 01:23:17 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KD0TGF </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Wednesday Wed Dec 6 22:03:31 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>NC1D </Callsign>
<Via node>NC1D B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Wednesday Wed Dec 6 11:57:57 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>NC1D / JOEL</Callsign>
<Via node>NC1D D</Via node>
<On module>C</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Wednesday Wed Dec 6 11:12:21 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KF0MCM </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Monday Mon Dec 4 15:12:34 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>KB9MQD / JACK</Callsign>
<Via node>KB9MQD Y</Via node>
<On module>C</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Monday Mon Dec 4 02:18:01 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>K9TON / TONY</Callsign>
<Via node>K9TON D</Via node>
<On module>C</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Monday Mon Dec 4 02:05:48 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>IK2WBK </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Sunday Sun Dec 3 04:36:40 2023</LastHeardTime>
</STATION>
<STATION>
<Callsign>PU2NMN </Callsign>
<Via node>K9TON B</Via node>
<On module>A</On module>
<Via peer>XLX207 </Via peer>
<LastHeardTime>Saturday Sat Dec 2 23:41:32 2023</LastHeardTime>
</STATION>
</XLX207 heard users>
字符串
我试图研究xml,并了解生成的xml格式不正确。
2条答案
按热度按时间uoifb46i1#
单个
sed
命令按原样修复示例字符串
li9yvcax2#
正确的解决方案是修复XML文本,然后使用标准XML解析器解析它。
所以,让我们看看是什么问题。
首先,我假设缺少的初始
<
字符只是一个剪切和粘贴错误。其次,正如您在注解中指出的那样,文件没有“root”标记。在文件头后插入
<root>
,在整个文件体的末尾插入</root>
非常简单。接下来是不正确的属性。XML希望属性是键/值对,并且不允许在结束标记中使用属性。由于所有属性看起来都是标记的类型,并且文件中不存在正确的键/值对,最简单的做法是,只取所有这些属性(如
linked peers
),并在开始标记中将它们转换为type="linked peers"
,然后从结束标记中删除所有属性标签.下面的代码让你的文件为我传递
xmllint
。字符串