我有一个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字段。我想将poTextBox.Text修补到当前P21851的位置。像我说的任何建议,如果我只是做文档。按下按钮点击它写入数据库就好了,我只想修改我的值。
答案 0 :(得分:0)
为什么不使用序列化将xml转换为对象,这样你就能做你想做的事情?你有xsd吗?
答案 1 :(得分:0)
决定采用不同的方法并将其放入一个字符串并执行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);