我们如何更改xdmnode的内部文本?我的要求是用从另一个xdmnode中提取的xpathvalue替换xdmnode的innertext。实现xmldocument很容易。有没有人有线索在xdmnodes中实现这个?
答案 0 :(得分:1)
通常XPath和XQuery在一个不可更改的树上工作,所以不要期望在默认树模型上找到任何setter。 XQuery的常用方法是编写一个返回已更改树的查询。
当你提到XmlDocument
和InnerText
时,我想你在.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
}。
答案 1 :(得分:1)
XdmNode模型主要用于XSLT和XQuery等函数式语言,因此设计为不可变的。但是,有一些XdmNode的实现可以包装底层节点模型(包括Microsoft的XmlDocument),其中一些是可变的,没有什么可以阻止你潜入并使用低级接口进行修改。