• 使用infopath中的xpath来读取sps中的数据


    在infopath中读取xml数据的时候用selectSingleNode("/信息_/@价格");死活弄不出来,去掉@就没问题了,结果在读sps中的数据的时候就必须用@,xpath的语法也要求用@,但是为什么读xml就不行,真是郁闷

    var selected=XDocument.DOM.selectSingleNode("//my:编号").text;

        objXml 
    = XDocument.GetDOM("(基本信息)");
        
        
    var price = objXml.selectSingleNode("/dfs:myFields/dfs:dataFields/dfs:基本信息_[@编号='"+selected+"']");
       
        
        
    if(price!=null)
        {
            
    if(price.selectSingleNode('@价格')!=null)
            {
            setNodeValue(
    "//my:价格",price.selectSingleNode('@价格').text);
            }
    else
            {
            setNodeValue(
    "//my:价格",'');
            }
    }

      

    读取数据的时候还是抱错,原来少了提取sps数据的命名空间
        XDocument.GetDOM("(基本信息)").setProperty("SelectionNamespaces",'xmlns:q="http://schemas.microsoft.com/office/infopath/2003/ado/queryFields" xmlns:d="http://schemas.microsoft.com/office/infopath/2003/ado/dataFields" xmlns:dfs="http://schemas.microsoft.com/office/infopath/2003/dataFormSolution"');

    同时将提取的数据表示在infopath的文本框中需要:
    function setNodeValue(xpath, value)
    {
        
    var xmlNode = getNode(xpath);

        
    if (!xmlNode)
            
    return;

        
    // The xsi:nil needs to be removed before we set the value.
        if (value != "" && xmlNode.getAttribute("xsi:nil"))
            xmlNode.removeAttribute(
    "xsi:nil");

        
    // Setting the value would mark the document as dirty.
        // Let's do that if the value has really changed.
        if (xmlNode.text != value)
            xmlNode.text 
    = value;
    }
    function getNode(xpath)
    {
        
    // Both XML node and absolute XPath are allowed.
        if (typeof(xpath) == "string")
            
    return XDocument.DOM.selectSingleNode(xpath);
        
    else
            
    return xpath;
    }
  • 相关阅读:
    2021.02.09 【ABAP随笔】-Excel高效输出工具-xlsx workbench-输出多个Sheet
    2021.02.07 【ABAP随笔】-Excel高效输出工具-xlsx workbench
    Thrift did not exit cleanly
    Docker部署Springboot项目,Invalid or corrupt jarfile /app.jar
    为jenkins设置nginx作为反向代理
    Jenkins安装报错 No valid crumb was included in request
    判断当前设备是ios还是安卓
    vue 路由跳转四种方式 (带参数)
    Vue table的column属性,render函数生成switch开关和button按钮
    H5页面自定义 pxTorem 函数进行单位转换
  • 原文地址:https://www.cnblogs.com/melonlee/p/210882.html
Copyright © 2020-2023  润新知