有没有办法解析胶水里面的变量

Posted

技术标签:

【中文标题】有没有办法解析胶水里面的变量【英文标题】:Is there a way to parse variables inside glue 【发布时间】:2021-12-06 02:48:25 【问题描述】:

我正在尝试使用 R 中的胶水包解析变量。但看起来有些问题。谁能帮忙

由于我这里的变量将来会是反应性的,我正在尝试使用胶水解析它...................... .....

library(glue)
asd <- "XYZ"


html(glue('<html>
<head>
<style>
.dropdown 
  position: relative;
  display: inline-block;


.dropdown-content 
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  z-index: 1;


.dropdown:hover .dropdown-content 
  display: block;

</style>
</head>
<body>



<div class="dropdown">
  <span>asd</span>
  <div class="dropdown-content">
  <p>Hello World!</p>
  </div>
</div>

</body>
</html>
'))
Error in eval(parse(text = text, keep.source = FALSE), envir) : 
  object 'position' not found

预期输出

<html>
<head>
<style>
.dropdown 
  position: relative;
  display: inline-block;


.dropdown-content 
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  z-index: 1;


.dropdown:hover .dropdown-content 
  display: block;

</style>
</head>
<body>



<div class="dropdown">
  <span>XYZ</span>
  <div class="dropdown-content">
  <p>Hello World!</p>
  </div>
</div>

</body>
</html>

我正在尝试使用 R 中的胶水包解析变量。但看起来有些问题。谁能帮忙

由于我这里的变量将来会是反应性的,我正在尝试使用胶水解析它...................... .....

【问题讨论】:

已编辑...... 【参考方案1】:

sprintf 应该在这里工作

str1 <- sprintf('<html>
<head>
<style>
.dropdown 
  position: relative;
  display: inline-block;


.dropdown-content 
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  z-index: 1;


.dropdown:hover .dropdown-content 
  display: block;

</style>
</head>
<body>



<div class="dropdown">
  <span>%s</span>
  <div class="dropdown-content">
  <p>Hello World!</p>
  </div>
</div>

</body>
</html>
', asd)

OP 代码中的错误来自它在.transformer 参数中使用的eval(parse。默认情况下,它进入identity_transformer,因此对整个字符串的评估/解析会产生问题。使用sprintf 或创建自定义.transformer 函数可能会更好

【讨论】:

谢谢...但如果我使用胶水,我不确定我的代码有什么问题。你能试一下吗?否则任何知道胶水的人都可以帮助我 @manup 你可以使用原始字符串r @manup 它与.transformer 相关,它确实评估为identity_transformer

以上是关于有没有办法解析胶水里面的变量的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu暂时不能解析域名

xsl:variable的应用和赋值的解析,不同赋值的类型不同

java项目,我上传dbf文件,解析文件数据保存到数据库里,数据量太大,速度太慢

html jinja2解析列表里面的字典

C指针的解析

180111每天 代码 解析