【问题标题】:XML transformation in ErlangErlang 中的 XML 转换
【发布时间】:2012-09-04 03:38:16
【问题描述】:

我有以下 XML:

<test>
    <something name="test">
        <todo>Something is here!</todo>
    </something>
    <mytag id="myID">!!!!</mytag>
    <todo>Hello, world</todo>
</test>

我需要替换一个标签的内容,其中包含id="myID" 并得到:

<test>
    <something name="test">
        <todo>Something is here!</todo>
    </something>
    <mytag id="myID">**MY NEW STRING IS HERE**</mytag>
    <todo>Hello, world</todo>
</test>

有没有标准的方法来实现它?我知道xmerl_xs 是一种Erlang 的XML 转换方式。但它不能用来解决我的问题。

我只设法使用 Xmerl 获得了&lt;mytag id="myID"&gt;**MY NEW STRING IS HERE**&lt;/mytag&gt;。我的代码:

{ RootEl, _Rest } = xmerl_scan:string(Template),
[Match|_] = xmerl_xpath:string("//*[@id='myID']", RootEl),
% Pack new content to the container
Result = Match#xmlElement { content="**MY NEW STRING IS HERE**" }

是否只能使用非标准库(Sablotron 等)?

【问题讨论】:

    标签: xml erlang transform


    【解决方案1】:

    我从未使用过那个库,但我认为 xmerl_lib:mapxml/2 可能是您想要的。

    【讨论】:

    • 非常感谢。这正是我想要的。
    【解决方案2】:

    您尝试过erlsom 库吗?它可以提供一种非常灵活的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-09
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 2015-07-01
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多