首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何忽略xml中没有引号的属性

如何忽略xml中没有引号的属性
EN

Stack Overflow用户
提问于 2017-11-14 11:36:32
回答 2查看 580关注 0票数 1

我想数一数tag1发生了多少次,给出这个123.xml文件(从互联网上流)

代码语言:javascript
复制
<startend>

 <tag1 name=myname>
<date>10-10-10</date>
</tag1 >

 <tag1 name=yourname>
   <date>11-10-10</date>
  </tag1 >

 </startend>

使用:xmlstarlet -t -v "count(//tag1)“123.xml

产出:

AttValue:“或”预期属性构造错误

如何忽略该属性没有“”?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-14 11:48:10

输入XML/HTML结构有无效的标记/属性,应该提前恢复:

xmlstarlet解决方案:

代码语言:javascript
复制
xmlstarlet fo -o -R -H -D 123.xml 2>/dev/null | xmlstarlet sel -t -v "count(//tag1)" -n

产出:

代码语言:javascript
复制
2

详细信息:

  • fo (or format)格式的XML文档
  • -o or --omit-decl -省略xml声明
  • -R or --recover -尝试恢复可解析的内容
  • -D or --dropdtd -删除输入文档的DOCTYPE
  • -H or --html -输入是HTML
  • 2>/dev/null -抑制错误/警告
票数 3
EN

Stack Overflow用户

发布于 2017-11-14 11:50:18

XML总是需要属性值周围的引号。如果要继续使用XML,首先必须从输入生成有效的XML。您可以使用SGML处理器(如OpenSP (特别是osx程序))将输入格式化为格式良好的XML。它就像在上面调用osx <your Input file>一样简单。

如果您在Ubuntu/Debian上,您可以通过在命令行调用osx (以及其他Unix系统上类似的sudo apt-get install opensp )来安装sudo apt-get install opensp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47284823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档