gpt4 book ai didi

xml - 如何从 XML 文档中删除命名空间?

转载 作者:数据小太阳 更新时间:2023-10-29 02:48:51 25 4
gpt4 key购买 nike

在我的 Flex 应用程序中,我调用了几个返回 XML 的 .NET Web 服务。但是,这些 Web 服务都返回带有命名空间的 XML。我无法在不引用命名空间的情况下读取/解析 XML,这意味着我必须在每个调用 WebService 的类中包含以下代码行:

private namespace PCRWebServices = "xxx.somename.web.services";

use namespace PCRWebServices;

我想消除对这种静态/硬编码逻辑的需求,只是为了从 Web 服务中读取 XML。

有什么方法可以从 XML 中“删除”命名空间,以便我可以将其作为“普通”XML 文档来读取?

我为处理结果和错误的每个 WebService 调用扩展了一个类:

private function faultHandler(event:FaultEvent):void
{

}

private function resultHandler(event:ResultEvent):void
{
var resultXML:XML = new XML(event.result);
}

我想向结果处理程序添加一些逻辑以“转换”XML。有什么想法吗?

这是 trace(resultXML) 返回的内容:

<GetDataResult xmlns="xxx.somename.web.services">
<DataSet>
<Data>
<IdNmb>15</IdNmb>
<NameTxt>Hello</NameTxt>
</Data>
<Data>
<IdNmb>16</IdNmb>
<NameTxt>World</NameTxt>
</Data>
<Status>
<Status>Success</Status>
</Status>
<ReturnCode>
<ReturnCode>0</ReturnCode>
</ReturnCode>
</DataSet>
</GetDataResult>

最佳答案

这是另一个正则表达式解决方案。它将删除多个命名空间,而不仅仅是一个。

private function resultHandler(event:ResultEvent):void
{
var nsRegEx:RegExp = new RegExp(" xmlns(?:.*?)?=\".*?\"", "gim");

var resultXML:XML = new XML(String(event.result).replace(nsRegEx, ""));
}

关于xml - 如何从 XML 文档中删除命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/673412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com