【发布时间】:2012-04-18 10:40:23
【问题描述】:
我在解析来自 Microsoft Translator (Windows Azure) 的翻译文本时遇到问题。我遵循here 中的示例,但是,当我尝试在 VS XAML 文本框中显示翻译后的文本时,输出为:System.Data.Services.Client.QueryOperationResponse`1[Microsoft.Translation]。
提交的查询是正确的,但是当我在浏览器中输入它时,它不会在屏幕上返回翻译(它只显示文本“翻译”和提交时间),但是页面源给出了一个 XML 文档,在Text 标签内正确翻译。
这是我的 C# 代码:
var serviceRootUri = new Uri("https://api.datamarket.azure.com/Bing/MicrosoftTranslator/");
var accountKey = "correct account key";
TranslatorContainer tc = new TranslatorContainer(serviceRootUri);
tc.Credentials = new NetworkCredential(accountKey, accountKey);
var translationQuery = tc.Translate(NameInput.Text, "en", "es");
textBox1.Text = translationQuery.Execute().ToString();
页面源(XML输出):
> <feed xmlns:base="https://api.datamarket.azure.com/Data.ashx/Bing/MicrosoftTranslator/Translate"
> xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
> xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
> xmlns="http://www.w3.org/2005/Atom">
> <title type="text" />
> <subtitle type="text">Microsoft Translator</subtitle>
> <id>https://api.datamarket.azure.com/Data.ashx/Bing/MicrosoftTranslator/Translate?Text='Mundo'&To='en'&From='es'&$top=100</id>
> <rights type="text" />
> <updated>2012-04-18T10:02:42Z</updated>
> <link rel="self" href="https://api.datamarket.azure.com/Data.ashx/Bing/MicrosoftTranslator/Translate?Text='Mundo'&To='en'&From='es'&$top=100"/>
> <entry>
> <id>https://api.datamarket.azure.com/Data.ashx/Bing/MicrosoftTranslator/Translate?Text='Mundo'&To='en'&From='es'&$skip=0&$top=1</id>
> <title type="text">Translation</title>
> <updated>2012-04-18T10:02:42Z</updated>
> <link rel="self" href="https://api.datamarket.azure.com/Data.ashx/Bing/MicrosoftTranslator/Translate?Text='Mundo'&To='en'&From='es'&$skip=0&$top=1"/>
> <content type="application/xml">
> <m:properties> <d:Text m:type="Edm.String">World</d:Text> </m:properties>
> </content>
> </entry>
> </feed>
我尝试按照here、here 和here 以及Linq 的改编代码从XML 中提取翻译后的文本,但它不会从未保存的文件中读取。使用已弃用的 Bing 翻译器,我设法使用 XElement.Parse(translatedText).Value 命令获取解析后的文本,但该命令现在不起作用。有没有办法从这个文档中读取(从页面源解析),或任何其他方式来获取翻译文本?
【问题讨论】:
标签: c# parsing azure xml-parsing translation