【问题标题】:How to change replace inner text of xdmnode(SAXON)?如何更改 xdmnode(SAXON) 的替换内部文本?
【发布时间】:2018-05-04 17:59:04
【问题描述】:

我们如何更改 xdmnode 的内部文本?我的要求是用从另一个 xdmnode 提取的 xpathvalue 替换 xdmnode 的内部文本。实现 xmldocument 很容易。有没有人知道在 xdmnodes 中实现这一点?

【问题讨论】:

    标签: xml xpath xquery saxon xpath-2.0


    【解决方案1】:

    通常 XPath 和 XQuery 在不可变树上工作,因此不要期望在默认树模型上找到任何设置器。 XQuery 的常用方法是编写一个返回更改后的树的查询。

    正如您提到的XmlDocumentInnerText,我想您在.NET 平台上使用Saxon。在那里,您还可以选择针对包装的 XmlDocument 节点编写 XPath 2 或 3,然后返回到 MS .NET DOM API 以使用例如操作节点。 InnerText

    https://www.saxonica.com/html/documentation/dotnetdoc/Saxon/Api/DocumentBuilder.html#Wrap(System.Xml.XmlDocument) 允许您包装文档,然后,一旦您选择了XdmNode,您就可以调用https://www.saxonica.com/html/documentation/dotnetdoc/Saxon/Api/XdmNode.html#getUnderlyingXmlNode() 来访问XmlNode 并设置它的InnerText

    【讨论】:

      【解决方案2】:

      XdmNode 模型主要用于 XSLT 和 XQuery 等函数式语言,因此设计为不可变的。但是,有一些 XdmNode 实现封装了底层节点模型(包括 Microsoft 的 XmlDocument),其中一些是可变的,没有什么可以阻止您深入研究并使用较低级别的接口进行修改。

      【讨论】:

        猜你喜欢
        • 2017-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-02
        • 2011-04-17
        • 1970-01-01
        相关资源
        最近更新 更多