我对我正在工作的XElement类别有非常具体的问题。
Say I试图确定要素价值,以“测试和安插;测试更多和更加合适;”
XElement tester = updatedElement.XPathSelectElement("Test");
tester.SetValue("test & testing more < >");
// outputs
//<Test>test & testing more < ></Test>
这是正确和细微的,但由于申请的限制,我与我一起工作,需要同时编造单一和双重的报价。
在我称之为“XElement”之前,我清理了这些投入。 SetText(电话)。
XElement.SetText(stringValue.EscapeXml())
public static string EscapeXml(this string s)
{
string xml = s;
if (!string.IsNullOrEmpty(xml))
{
xml = xml.Replace(""", """);
xml = xml.Replace(" ", "'");
}
return xml;
}
<代码>"将转至&quot;
,在指定信使职能时。 因此,当超文本照相和照相;在我真想“显示”的时候。
我之所以需要一个缩略语,是因为有一个服务可以产生Xpath的表述。
I.E. - 由服务部创建的Xpath等于
XElemenet test = testParent.XPathSelectElement("Test[.= some value with single quote s ]")
单一字句在作为Xpath表述的过滤器时将造成例外。 您可以说,“我只能用<代码>&';在过滤器建立时替换单一报价”。
我之所以能够开脱,是因为有一些身份识别要素与XML代号相同的过滤器相匹配。 过滤器还不会归还该元素,因为母子没有任何与过滤的表述相匹配的东西。
双重引言之所以起作用,是因为我把XML的一个庞大小丘带转至一项服务,而这项服务将XMLI转成另一种形式的XML。 之后,这项服务将XML送至另一处,再交还另一种形式,具有许多属性:
so say I sent in the following:
<test>Some value from the original XML "123"<test/> // cannot encode here, must be done before hand
我回过来
<test value="Some value from the original XML "123""/>
重复引用这会造成在评价答复时失败。 我不能简单地把它放在服务之前,因为属性的价值必须与我原来的要素完全吻合。
是否有任何人对XElement类进行延伸,从而形成“和报价”。 我曾试图推翻SetaText,但那是徒劳的。
解决这一问题的任何帮助都将受到高度赞赏。
感谢!