我需要标识子节点元素的文本值。
目的:
我想为XML文件创建Transform文件,因此我需要通过比较子节点 ClientKey
的值来替换父节点 Connection我的XML文件:
<Connection>
<ClientKey>Client1</ClientKey>
<ConnectionString>Test</ConnectionString>
<WorkingDocs>Test</WorkingDocs>
<TemplateDocs>Test</TemplateDocs>
<PatientDocs>Test</PatientDocs>
<ClientName>Test</ClientName>
<ClientTimeZone>Test</ClientTimeZone>
<ClientTimeDiff>Test</ClientTimeDiff>
<ExceptionLogPath>Test</ExceptionLogPath>
</Connection>
我如何识别 ClientKey 节点的文本
答案 0 :(得分:0)
在谷歌搜索之后,我发现了这种情况下的Config Transform解决方案
我们有不同的方法
1. Condition(ClientKey/text()='Client1')
2. XPath(/Connections/Connection[ClientKey/text()='UHG_LOCAL'])
<Connection xdt:Transform="Replace" xdt:Locator="Condition(ClientKey/text()='Client1')">
<ClientKey>GC_LOCAL</ClientKey>
<ConnectionString>Test1</ConnectionString>
<WorkingDocs>Test1</WorkingDocs>
<TemplateDocs>Test1</TemplateDocs>
<PatientDocs>Test1</PatientDocs>
<ClientName>Test1</ClientName>
<ClientTimeZone>Test1</ClientTimeZone>
<ClientTimeDiff>Test1</ClientTimeDiff>
<ExceptionLogPath>Test1</ExceptionLogPath>
</Connection>
答案 1 :(得分:0)
了解LINQ to XML可能会更有用。请查看https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overview
XML值可以存储在“元素”或“属性”下。请考虑下面的xml文件。
<Connection>
<ClientKey Name = "KeyName" >Client1</ClientKey>
<ConnectionString>Test</ConnectionString>
<WorkingDocs>Test</WorkingDocs>
<TemplateDocs>Test</TemplateDocs>
<PatientDocs>Test</PatientDocs>
<ClientName>Test</ClientName>
<ClientTimeZone>Test</ClientTimeZone>
<ClientTimeDiff>Test</ClientTimeDiff>
<ExceptionLogPath>Test</ExceptionLogPath>
XElement Data = XElement.Load()//您的Xml参考在这里
字符串结果= data.Element(“ ClientKey”)。value
字符串结果= data.Attribute(“名称”)。值