English 中文(简体)
要素。 SetText encoding issue with one and Doublequotes
原标题:XElement.SetText encoding issue with single and double quotes

我对我正在工作的XElement类别有非常具体的问题。

Say I试图确定要素价值,以“测试和安插;测试更多和更加合适;”

        XElement tester = updatedElement.XPathSelectElement("Test");
        tester.SetValue("test & testing more < >");

        // outputs
        //<Test>test &amp; testing more &lt; &gt;</Test>

这是正确和细微的,但由于申请的限制,我与我一起工作,需要同时编造单一和双重的报价。

在我称之为“XElement”之前,我清理了这些投入。 SetText(电话)。

     XElement.SetText(stringValue.EscapeXml())

      public static string EscapeXml(this string s)
    {
        string xml = s;
        if (!string.IsNullOrEmpty(xml))
        {
            xml = xml.Replace(""", "&quot;");
            xml = xml.Replace(" ", "&apos;");
        }
        return xml;
    }

<代码>&quot;将转至&amp;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,但那是徒劳的。

解决这一问题的任何帮助都将受到高度赞赏。

感谢!

最佳回答

我看不出 escaping与XML syntax的引述如何帮助XPath 1.0个表述方式,如XPath 1.0 ;the syntax &';不被视为一个逃脱的单一报价。 即便有XPath 2.0,你还需要遵循XPath 2.0 syntax公约,以逃避援引,而且需要将引文(例如)增加一倍。 具有单一报价的某种数值。]

如果你想拯救XDocument或XElement,并想把这种单一或双重的报价作为实体参考而逃脱,那么,这样做的正确途径就是扩大XmlWriter的执行,如果你确保每个报价都按照需要逃脱。 然后,不考虑您习俗的XmlWriter执行。

问题回答

暂无回答




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...