繁体   English   中英

加载XML文件添加值并保存

[英]Load XML file add Values and Save

我有一个XML文件,我们正在AS400中使用systemlink。 我有可用的XML文件,如果我只是在按钮上单击加载文档,它将把硬编码值写入数据库。 但是,我想修补文本框中的值。这是我的XML:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE System-Link SYSTEM 'SystemLinkRequest.dtd'>
      <System-Link>
<Login userId='' password='' maxIdle='900000'
   properties='com.pjx.cas.domain.EnvironmentId=RN,
           com.pjx.cas.domain.SystemName=,
           com.pjx.cas.user.LanguageId=en'/>

<Request sessionHandle='*current' workHandle='*new'
   broker='EJB' maxIdle='1000'>

<Create name='newObject_ITItemLocation_Default' domainClass='EXT0149' retainResult='false'>
  <ApplyTemplate clientClass='EXT0149'>
    <![CDATA[Asset]]>
  </ApplyTemplate>
  <DomainEntity>
    <Property path='ponum'>
      <Value><![CDATA[P21851]]></Value>
    </Property>
    <Property path='itmnbr'>
      <Value><![CDATA[909520]]></Value>
    </Property>
    <Property path='itmcls'>
      <Value><![CDATA[1]]></Value>
    </Property>
    <Property path='itmloc'>
      <Value><![CDATA[1]]></Value>
    </Property>
    <Property path='srnum'>
      <Value><![CDATA[]]></Value>
    </Property>
  </DomainEntity>
</Create>

这是我的C#:

enterXmlDocument document = new XmlDocument();
document.Load(Server.MapPath("~/addNew.xml"));
XmlElement po = document.GetElementById("ponum");
po.Value = poTextBox.Text;
document.Save(Server.MapPath("~/addNew.xml")); 

每次尝试运行它时,都会得到一个找不到的对象,因此我猜测它找不到Ponum字段。 我想在当前为P21851的地方修补poTextBox.Text。 就像我说的那样,如果有任何建议,只要按一下即可完成操作。单击加载后,它将写入数据库就好了,我只想修补我的值。

为什么不使用序列化将xml转换为对象,以便可以执行所需的操作? 你有xsd吗?

决定采用其他方法,只是将其放入字符串中,然后执行HttpWebRequest,这样我就可以将值插入到字符串中。 感谢您有一天的答案,我将弄乱如何在XML文档中实现该功能。

string asset = "<?xml version='1.0' encoding='UTF-8'?>" + "<!DOCTYPE System-Link SYSTEM 'SystemLinkRequest.dtd'>" + "<System-Link>" + "<Login userId='' password='' maxIdle='900000' properties='com.pjx.cas.domain.EnvironmentId=RN, com.pjx.cas.domain.SystemName=,com.pjx.cas.user.LanguageId=en'/>" + "<Request sessionHandle='*current' workHandle='*new' broker='EJB' maxIdle='1000'>" + "<Create name='newObject_ITItemLocation_Default' domainClass='EXT0149' retainResult='false'>" + "<ApplyTemplate clientClass='EXT0149'>" + "<![CDATA[Asset]]>" + "</ApplyTemplate>" + "<DomainEntity>" + "<Property path='ponum'><Value><![CDATA[" + poTextBox.Text + "]]></Value></Property>" + "<Property path='itmnbr'><Value><![CDATA[" + itemNoTextBox.Text + "]]></Value></Property>" + "<Property path='itmcls'><Value><![CDATA[" + classDropDown.SelectedValue +"]]></Value></Property>" + "<Property path='itmloc'><Value><![CDATA[" + locationDropDown.SelectedValue + "]]></Value></Property>" + "<Property path='srnum'><Value><![CDATA["+ serialTextBox.Text +"]]></Value></Property>" + "</DomainEntity>" + "</Create>" + "</Request>" + "</System-Link>";

String wRequestString = "SystemLinkRequest=" + HttpUtility.UrlEncode(asset);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM