根据子节点的文本值替换整个父节点的转换文件 - XML 转换
Transform file to replace the whole parent node based on the text value of the child node - XML Transform
我需要识别子节点元素的文本值。
用途:
我想为 XML 文件创建转换文件,因此我需要通过比较子节点 的值来替换父节点 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 节点的文本
谷歌搜索后,我找到了这种情况下配置转换的解决方案
我们有不同的方法
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>
了解 LINQ to XML 会有更多用处。请查看 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overview
XML 值可以存储在 "Elements" 或 "Attributes".. 下面考虑 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 参考在这里
- 获取Element值:
(客户端密钥是元素)
字符串结果 = data.Element("ClientKey").value
- 获取Attribute值:(Attribute是ClientKey里面的Name属性)
字符串结果 = data.Attribute("Name").value
我需要识别子节点元素的文本值。
用途:
我想为 XML 文件创建转换文件,因此我需要通过比较子节点 的值来替换父节点 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 节点的文本
谷歌搜索后,我找到了这种情况下配置转换的解决方案
我们有不同的方法
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>
了解 LINQ to XML 会有更多用处。请查看 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overview
XML 值可以存储在 "Elements" 或 "Attributes".. 下面考虑 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 参考在这里
- 获取Element值: (客户端密钥是元素)
字符串结果 = data.Element("ClientKey").value
- 获取Attribute值:(Attribute是ClientKey里面的Name属性)
字符串结果 = data.Attribute("Name").value