0

我有以下 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 转换方式。但它不能用来解决我的问题。

而且我只设法<mytag id="myID">**MY NEW STRING IS HERE**</mytag>使用 Xmerl。我的代码:

{ 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等)才有可能吗?

4

2 回答 2

1

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

于 2012-09-04T07:40:45.647 回答
1

你试过erlsom图书馆吗?它可以提供一种非常灵活的方式。

于 2012-09-06T03:40:36.263 回答