“xmlupdater-条件xquery以保留现有元素值(如果更新属性为空)”的注释和答案 https://knowledge.亚搏在线safe.com/questions/67917/xmlupdater-conditional-xquery-to-keep-existing-ele.html “如果更新属性为空,则保存现有元素值的xmlupdater-ConditionalXQuery”问题的最新注释和答案。 DMS2对DMS2答案的评论 https://knowledge.亚搏在线safe.com/comments/68089/view.html网站 第一种选择是完美的。谢谢您。

清华大学,2018年4月12日格林尼治标准时间15:29:41 DMS2
高知对高知答案的评论 https://knowledge.亚搏在线safe.com/comments/67935/view.html网站 请注意,如果源XML包含名称空间,XQuery表达式中将需要名称空间声明。另见本问答: 实数加零
[添加]这是XML元素属于命名空间的示例。
源XML:
       

       
    
        
    
        
         一百
        

       
XQuery表达式:
declare namespace k=“http://www.foobar.com/xml/k”;让$minx:=xs:string(fme:get attribute(“_minx”))让$maxx:=xs:string(fme:get attribute(“_maxx”))返回如果($minx ne”),则将node/k:root/k:minx的值替换为$minx else(),如果($maxx ne''),则将node/k:root/k:maxx的值替换为$maxx else()
星期二,2018年4月10日23:17:52格林尼治标准时间 高桥
高桥回答 https://knowledge.亚搏在线safe.com/answers/67934/view.html网站

您好!@ DMS2,一种可能的方法是从源XML文档中提取原始值作为特性属性(例如原产地:_原件等)将它们合并到更新功能,然后在表达式中使用它们。例如

如果(fme:get attribute(‘‘u minx’)ne’’),那么fme:get attribute(‘‘u minx’)else fme:get attribute(‘‘u original’u minx’)

或者,xmlxqueryupdater也可以更灵活地使用,如果合并新值(_minx,_ maxx等)指向具有XML文档的功能。假设该特性具有一个名为“response”的属性,该属性存储该XML文档,可以进行以下设置。

       

       
    
        
    
        
         一百
        

       

XQuery表达式:

让$minx:=xs:string(fme:get attribute(“_minx”))让$maxx:=xs:string(fme:get attribute(“_maxx”))返回如果($minx ne''),则将node/root/minx的值替换为$minx else(),如果($maxx ne''),则将node/root/maxx的值替换为$maxx else()

星期二,2018年4月10日23:11:52格林尼治标准时间 高桥