首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取c#上的xml文件,读取阿拉伯文本提供一个加密字符串,而不是实际的utf-8。

读取c#上的xml文件,读取阿拉伯文本提供一个加密字符串,而不是实际的utf-8。
EN

Stack Overflow用户
提问于 2021-02-17 15:29:12
回答 1查看 194关注 0票数 0

>例如,这是托管在url http://localhost/test1上的

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?> 
<MSG>
    <arabic>
        <translationOne>اول</translationOne>
        <translationTwo>دوم</translationTwo>
    </arabic> 
     <persian>
          <translationOne>یک</translationOne>
          <translationTwo>دوم</translationTwo>
    </persian> 
</MSG>

c#类

代码语言:javascript
复制
            var m_strFilePath = "http://localhost/test1";
            string xmlStr;
            using (var wc = new WebClient())
            {
                xmlStr = wc.DownloadString(m_strFilePath);
            }
            var xmldoc = new XmlDocument();
            xmldoc.LoadXml(xmlStr);
            XmlNodeList unNodeA = xmldoc.SelectNodes("MSG/arabic");
            XmlNodeList unNodeP = xmldoc.SelectNodes("MSG/persian");
            string arabic = "";
            foreach (XmlNode i in unNodeA)
            {
                 arabic += i["translationOne"].InnerText;
            }
            string persian= "";
            string persian2 ="";
            foreach (XmlNode ii in unNodeP)
            {
                 persian+= ii["translationOne"].InnerText;
                 persian2+= ii["translationTwo"].InnerText;
            }
             
            ->>print(arabic and persian);

在这里,测试包含了不正确的格式,比如(اولدوم)-这是某种类型的测试(“P/P,P,P,P<†>P。

EN

回答 1

Stack Overflow用户

发布于 2021-02-17 15:39:05

最好使用LINQ。自2007年以来,它在.Net框架中可供使用。

c#

代码语言:javascript
复制
void Main()
{
    XDocument xdoc = XDocument.Parse(@"<?xml version='1.0' encoding='utf-8'?><MSG>
            <arabic>
                <translationOne>اول</translationOne>
                <translationTwo>دوم</translationTwo>
            </arabic> 
             <persian>
                  <translationOne>یک</translationOne>
                  <translationTwo>دوم</translationTwo>
            </persian> 
        </MSG>");

    foreach (XElement elem in xdoc.Descendants("arabic").Elements())
    {
        Console.WriteLine("translation: {0}", elem.Value);
    }
}

如果需要从URL加载XML:

代码语言:javascript
复制
const string Url = @"http://hurt.super-toys.pl/xml/super_toys_ceneo_pelny.xml";
XDocument xdoc = XDocument.Load(Url);

输出

代码语言:javascript
复制
translation: اول
translation: دوم
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66245054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档