还是在语音识别这块。在读取本地的SRGS的XML后,无法获取到根节点<grammar>。

下面是SRGS.XML文件(只给出了根节点)

<?xml version="1.0" encoding="utf-8" ?>

< grammar version="1.0"          

xml:lang="zh-cn"          

root="mediaMenu"          

tag-format="semantics/1.0"          

xmlns="http://www.w3.org/2001/06/grammar"           

xmlns:sapi="http://schemas.microsoft.com/Speech/2002/06/SRGSExtensions">
< grammar/>

对于这个通过以下解析方式,

StorageFile xmlFile = await StorageFile.GetFileFromApplicationUriAsync
(new Uri("ms-appx:///SRGSGrammar.xml"));//获取本地文件 string xmlString = await FileIO.ReadTextAsync(xmlFile); XDocument xml = XDocument.Parse(xmlString);
XElement root = xml.Element("grammar");//获取grammar节点

获取不到根节点grammar, root值为null

而将xmlns="http://www.w3.org/2001/06/grammar“
改为xmlns:a="http://www.w3.org/2001/06/grammar"

则能够获取到,这是本身的没有:a的格式才对语音识别需要的正确格式。

这是因为标准的SRGS中,默认的namespace 是 http://www.w3.org/2001/06/grammar, 我们在定位元素时,是需要指定XNamespace的:

XDocument xml = XDocument.Parse(xmlString);
XNamespace nsSRGSG = "http://www.w3.org/2001/06/grammar";
XElement root = xml.Element(nsSRGSG + "grammar");//获取grammar节点

通过上述就能获取到了。

详见MSDN文档:

#XNamespace Class http://msdn.microsoft.com/en-us/library/system.xml.linq.xnamespace(v=vs.110).aspx

解析某些特殊格式XML文件时,获取不到根节点问题的更多相关文章

  1. android使用Pull解析来自服务器的xml文件时出现错误以及解决方案

    直接上代码,代码中有详细注释: 1 public class CheckUpdateManager { 2 private static final String TAG = "CheckU ...

  2. 解析流中的Xml文件时,报错:java.net.MalformedURLException: no protocol

    原来的代码: // 创建DocumentBuilder对象 DocumentBuilder b = a.newDocumentBuilder(); // 通过DocumentBuilder对象的par ...

  3. python解析xml文件时使用ElementTree和cElementTree的不同点;iter

    在python中,解析xml文件时,会选用ElementTree或者cElementTree,那么两者有什么不同呢? 1.cElementTree速度上要比ElementTree快,比较cElemen ...

  4. js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

    ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId ...

  5. 死磕Spring之IoC篇 - 解析自定义标签(XML 文件)

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  6. 编辑xml文件时不能自动提示问题的解决

    在编辑xml文件时,eclipse总是不能自动提示,在网上找了一些资料,大部分都是说关于xml editor配置的,下面也把这个方法罗列在下面,以供参考: 解决办法:在eclipse的菜单里,找到wi ...

  7. 项目配置 xml文件时 报错提示(The reference to entity "useSSL" must end with the ';' delimiter.)

    这次在配置xml文件时,出现错误提示( The reference to entity “useSSL” must end with the ‘;’ delimiter.) 报错行为 <prop ...

  8. 在tomcat启动时解析xml文件,获取特定标签的属性值,并将属性值设置到静态变量里

    这里以解析hibernate.cfg.xml数据库配置信息为例,运用dom4j的解析方式来解析xml文件. 1.在javaWeb工程里新建一个java类,命名为GetXmlValue.java,为xm ...

  9. 用JDOM解析XML文件时如何解决中文问题?如何解析?

    import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import ja ...

随机推荐

  1. Deformity ASP/ASPX Webshell、Webshell Hidden Learning

    catalog . Active Server Page(ASP) . ASP.NET . ASP WEBSHELL变形方式 . ASPX WEBSHELL变形方式 . webshell中常见的编码转 ...

  2. HDU 3466 Proud Merchants(01背包问题)

    题目链接: 传送门 Proud Merchants Time Limit: 1000MS     Memory Limit: 65536K Description Recently, iSea wen ...

  3. 屠蛟之路_你的名字_FirstDay

    君の名は. "号外,号外!屠龙天团众志成城,惊天技杀alpha龙!号外,号外--" 苦战十日,屠龙少年们依仗最后的惊天技终于将邪恶的alpha怪龙斩杀.但是对屠龙少年而言,这是一场 ...

  4. python标准模块(二)

    本文会涉及到的模块: json.pickle urllib.Requests xml.etree configparser shutil.zipfile.tarfile 1. json & p ...

  5. python04 面向对象编程02

    为啥要用类而不用函数呢 记住两个原则: 减少重复代码 代码会经常变更 2    会对变量或字符串的合法性检测(在实例初始化的时候能够统一初始化各个实例的变量,换做函数来说,要弄出同样的变量那么在初始化 ...

  6. 逐行读取txt文件

    header("Content-type:text/html; charset=utf-8"); $handle = fopen('test.php', 'r') or die(' ...

  7. CSS3-column分栏

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. CSS3中的animation动画

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. linux下VNC的配置及使用

    我们知道在windows里面有远程桌面(著名的有pcanywhere,网络人等)对吧,在linux下我们同样有这个东西,其中最流行的一种就是VNC,其实VNC是一种协议,它的全称是virtual ne ...

  10. ubuntu 重启 nginx 失败,* Restarting nginx nginx ...fail!

    ubuntu 重启 nginx 失败,* Restarting nginx nginx ...fail!       执行 nginx 重启服务时,提示失败如下: $ sudo service ngi ...