问题标签 [scala-xml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 如何将 scala.xml.Attribute 的序列转换为 scala.xml.MetaData?
这里没有太多要补充的。当然,我可以用命令式编码风格以某种方式完成它,但我很好奇如何很好地解决这个问题。
scala - 在 Scala 宏中匹配 XML 文字
我想用宏转换 Scala XML 文字。(不是带有 XML 的字符串文字,而是实际的 XML 文字)。据我了解,XML 文字实际上并没有在 AST 级别上内置到语言中,而是在解析器中脱糖。有趣的是,这确实有效:
但很明显,这完全没用,因为不可能以这种方式匹配任意 xml。就像是
不能工作,因为我们必须在一个模式中绑定同一个变量两次。
打印出这种 xml 文字表达式的树实际上给出了脱糖版本。例如。
但试图匹配这个失败:
我很困惑!我的问题是:有没有办法可靠地匹配 scala 宏中的任意 xml litarals?另外:为什么它们在 quasiquotes 中支持常量 xml 而不是脱糖值?
xml - scala 字符串到 scala.xml.Elem
我必须将字符串转换为 XML
xml - 在 Scala 中,如何使用转换器/重写规则在 XML 元素中添加递增的 ID
我想读入一个 XML 文件并在特定元素中放置一个递增的 id。这是我编写的一些测试代码,用于弄清楚如何做到这一点:
此代码是功能性的 - 但是,id 没有按预期出现:
看起来变压器多次撞击每个节点,增加 id,然后当 id 达到 7 时最终停止。为什么它在最终完成之前接触节点这么多次?有什么我可以做不同的事情来告诉它完成那个节点吗?
我想也许它正在遍历新修改的节点,因此我检查了包含名为“id”的属性的元素。但这似乎不起作用。也许一开始就这样做是个坏主意?
感谢您对此的任何帮助。
scala - 在不最小化元素的情况下解析 HTML + 转换
我正在为 Web 应用程序编写一个插件,该插件采用用户提供的 HTML 并将其转换为不同的 HTML 代码。我主要想找到具有给定类/内容(“指令”)的所有元素并将其重写为其他内容。我正在使用 Scala 2.11.1 和 TagSoup 解析器来处理对 XML 不友好的代码。
我目前的主要问题是对XML.parseString("<div></div>")
收益的调用:
这种行为会使生成的页面(即iframe
s、div
s 等)出现乱码,因为我希望不最小化此标签。有没有办法在加载阶段避免这种行为?
第二个问题与 TagSoup 有关。解析如下代码块时:
TagSoup 将其解析为
有什么办法可以避免这些问题吗?到目前为止,我只提出了“讨厌”的解决方案,例如重写所有元素以使其最小化并从<script>
标签内容中删除所有实体。
TagSoup 解析是这样完成的:
xml - 删除 scala (scala-xml) 中的前缀属性
我正在尝试使用 RuleTransformer 在 Scala 中删除带有前缀的属性。
虽然以下适用于无前缀属性:
我没有成功使用前缀属性(注意“bar”元素的属性“attr”具有前缀“pre”):
我试图使用
定义为
没有任何成功。
我是 Scala 初学者,所以如果这是一个微不足道的问题,请多多包涵。
scala - 我可以告诉 scala.xml 匹配两个标签中的任何一个吗?
body \\ "div"
匹配“div”标签,并body \\ "p"
匹配“p”标签。
但是如果我想匹配所有的“div”和“p”标签怎么办?scala.xml 中的一个表达式可以吗?
如果没有,是否有另一种方法可以按照它们出现的顺序遍历文档中的所有“div”和“p”标签?
scala - 使用 Scala 模式匹配提取具有特定名称的 XML 元素,而不考虑内容
给定以下 XML 元素——
-- 如何构造一个匹配所有<bar/>
s 的模式?我试过了,例如:
但这仅匹配空。
如果我允许内容占位符:
这仅匹配非空。
我当然可以放弃 XML 文字而只写
但似乎必须有更聪明的方法。
xml - 在 Scala 中向 XML 文件添加或追加新元素,而不是替换它
我的 scala 代码目前最终用我添加的新标签替换了我的 xml 文件的整个部分。我希望它只将标记添加一次作为 ClientConfig 的子项,但它会用自身替换本节中存在的所有标记。
其中 host=bob 和 env=flat 是先前定义的, addNewEntry 定义如下
它产生的xml是
相反,我希望它只是将其附加为 ClientConfig 的单个子项,例如最后三个子项已经存在于文件中
我该怎么办?例如python有一个简单的插入方法