【问题标题】:Scala - XML inspection/modificationScala - XML 检查/修改
【发布时间】:2013-04-26 10:13:14
【问题描述】:

总的来说,我对 XML 处理和 Scala 都是新手。根据下面的示例 xml,我几乎没有问题/事情要实现

val xml = <begin>
    <definition>
         <var>x</var>
         <install>new version</install>
    </definition>
</begin>

xml 的类型是 Elem。现在,如果我想搜索给定的标签/子标签,让我们说

 xml \\ "definition"

我正在获取 Seq[Node]。 Elem 和这种类型有什么区别?作为查询特定标签的结果,我可以得到Elem,即从该标签开始取回elem?

我的第二个问题是关于修改 XML。有没有一种简单的方法来实现某种形式:“安装”标签之间的每个值 -> 用 XXXX 替换,其余的应该保持不变。有没有一种方法可以让您实现这一目标?谢谢

【问题讨论】:

    标签: xml scala


    【解决方案1】:

    要了解 Elem(一个 DOM 元素)和 Node 之间的区别,请先查看此链接:

    What's the difference between an element and a node in XML?

    在高层次上,Node 是一个抽象概念,表示 XML 文档中的一个位置(属性、文本节点、元素),而 Element 是一种具体的 Node 类型,由类似的东西表示;

    <install>foo</install>
    

    现在,对于您问题的第二部分,我将更多地关注将动态内容放入一组固定的 XML 中,而不是尝试改变现有的 XML。你可以这样做:

    def buildXml(version:String) = {
      <begin>
        <definition>
          <var>x</var>
          <install>{version}</install>
        </definition>
      </begin>
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多