1

我想访问一个预处理指令“mso-infoPathSolution”,它有一个属性href并为其分配一个url,比如http://www.msn.com

<?xml version="1.0" encoding="utf-8"?>
<?mso-infoPathSolution name="urn:schemas-microsoft-com:office:infopath:XMLtool:-myXSD-2013-06-22T17-00-48" solutionVersion="1.0.0.457" productVersion="14.0.0.0" PIVersion="1.0.0.0"  href="" ?>

我需要使用 XDocument 类。我如何做到这一点?

4

2 回答 2

0

在 C# 中:
1. 访问 XDocument 的 XProcessingInstruction(s)
2. 查看以下示例如何访问和更改处理字符串:
MSDNlink

(阅读全文或滚动至“示例”)

于 2013-08-04T18:11:40.023 回答
0

使用 VB.NET,我能够确定处理指令被编码为,XProcessingInstruction并且它被简单地分解为

  • Targetmso-infoPathSolution在你的例子中),和
  • Data(其余的name="value"对,未解析),
  • Strings.

因此,您需要检查现有的href="...",如果存在则对其进行调整,否则将其添加:

Dim xpi = xDoc.Nodes.OfType(Of XProcessingInstruction) _
          .Where(Function(p) p.Target = "mso-infoPathSolution").First
Dim re = New Regex("href=""([^""]*)""")
If re.IsMatch(xpi.Data) Then
  xpi.Data = re.Replace(xpi.Data, "href=""" & Url & """")
Else
  xpi.Data &= " href=""" & Url & """"
End If
于 2013-08-04T17:19:39.487 回答