需要两个命名空间 - 尝试将新元素添加到第二个命名空间 [英] Two Namespaces help required - trying to add a new element to second namespace

查看:65
本文介绍了需要两个命名空间 - 尝试将新元素添加到第二个命名空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我对使用LinqPad和处理XML文件有些新意。我对单个命名空间要求很好,但我需要在第二个命名空间中添加一个新元素,我无法弄清楚如何。请参阅下面的代码中以粗体显示的区域。基本上,
我想在现有XML文件中添加值为BR的cdsd:PartQualifier:

Hi I am somewhat new to using LinqPad and working with XML files. I am fine with single namespace requirements but I need to add in a new element in the second namespace and I am unable to figure out how. See the area in bold in the code below. Essentially, I want to add cdsd:PartQualifier with a value of BR to the existing XML file:

XML文件代码段:

< PatientRecord>

          <人口统计>&
                  <名称>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;&NBSP;&NBSP; < cdsd:LegalName namePurpose = >> 1">

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; < cdsd:姓>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; < cdsd:第一部分> SARAH< / cdsd:第一部分>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ; < cdsd:PartType> GIV< / cdsd:PartType>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; < / cdsd:姓>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; < cdsd:名字>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; < cdsd:第一部分> GOMEZ< / cdsd:第一部分>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP; < cdsd:PartType> FAMC< / cdsd:PartType>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; < / cdsd:名字>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; < cdsd:英文别名>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; < cdsd:第一部分> GABRIELA< / cdsd:第一部分>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP; < cdsd:PartType> GIV< / cdsd:PartType>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&的需要输入
< cdsd:PartQualifier> BR< / PartQualifier> &NBSP;&NBSP; &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;

<PatientRecord>
          <Demographics>
                  <Names>
                         <cdsd:LegalName namePurpose="L">
                                   <cdsd:FirstName>
                                         <cdsd:Part>SARAH</cdsd:Part>
                                         <cdsd:PartType>GIV</cdsd:PartType>
                                   </cdsd:FirstName>
                                   <cdsd:LastName>
                                          <cdsd:Part>GOMEZ</cdsd:Part>
                                          <cdsd:PartType>FAMC</cdsd:PartType>
                                   </cdsd:LastName>
                                   <cdsd:OtherName>
                                           <cdsd:Part>GABRIELA</cdsd:Part>
                                           <cdsd:PartType>GIV</cdsd:PartType>
                     need to enter: <cdsd:PartQualifier>BR</PartQualifier>                  

下面是代码片段





:
           try{
              XNamespace ns = "cds";             
              XDocument d = XDocument.Load(xmlFile);
              XmlNamespaceManager r = new XmlNamespaceManager(new NameTable());
              r.AddNamespace("empty", ns.ToString());
              r.AddNamespace("default", "cds");
              r.AddNamespace("cdsd", "cds_dt");
             
              ///OmdCds/PatientRecord/Demographics/Names/cdsd:LegalName/cdsd:OtherName/cdsd:Part
              string temp = "./default:Demographics/default:Names/cdsd:LegalName/cdsd:OtherName/cdsd:Part";
              string temp1 = "./default:Demographics/default:Names/cdsd:LegalName/cdsd:OtherName/cdsd:PartType";
              string temp2 = "./default:Demographics/default:Names/cdsd:LegalName/cdsd:OtherName";
                            
              var query = from XElement xe in d.XPathSelectElements("//empty:PatientRecord", r)
              //where xe.Descendants(demoNameSource).Any()
                select xe;
              
              int extCounter = 0;
              int addCounter = 0;
              foreach (XElement xe in query.ToArray())
                {
                Console.WriteLine("Start");
                
                try
                {
                if ((xe.XPathSelectElement(temp, r) != null));
                extCounter ++;
                {
                  Console.WriteLine((xe.XPathSelectElement(temp, r).Value));  
                  Console.WriteLine((xe.XPathSelectElement(temp1, r).Value));
                  XNamespace cdsdNs = XNamespace.Get("cdsd");                  
                  xe.XPathSelectElement(temp2, r).Add(new XElement(cdsdNs + "PartQualifier", "BR"));
                  addCounter ++;
                }
                }
                catch
                {
                  Console.WriteLine("No middle name.");
                }
                
              }
              Console.WriteLine(string.Concat("Total Number of MiddleNames= " + extCounter.ToString()));
              Console.WriteLine(string.Concat("Total Number of MiddleNames BR's Added= " + addCounter.ToString()));

推荐答案

任何人?布勒?即使有人能引导我朝着正确的方向前进:(
Anyone? Buller? Even if someone can lead me in the right direction :(


这篇关于需要两个命名空间 - 尝试将新元素添加到第二个命名空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆