我有一个XML文档,如下所示:
<Data
xmlns="http://www.domain.com/schema/data"
xmlns:dmd="http://www.domain.com/schema/data-metadata"
>
<Something>...</Something>
</Data>
Run Code Online (Sandbox Code Playgroud)
我正在使用PHP中的SimpleXML解析信息.我正在处理数组,我似乎遇到了命名空间的问题.
我的问题是:如何删除这些名称空间?我从XML文件中读取数据.
谢谢!
例如,是否有一种简单的方法来删除XML名称空间,但保持jQuery或JavaScript的标记不变?例如:
<html:a href="#an-example" title="Go to the example">Just an Example</html:a>
Run Code Online (Sandbox Code Playgroud)
并将其更改为:
<a href="#an-example" title="Go to the example">Just an Example</a>
Run Code Online (Sandbox Code Playgroud)
使用jQuery或JavaScript实时运行,并且不知道其中的元素和/或属性?
我正在寻找这个问题的Javascript解决方案:
我有一个XML文档,它通过典型的AJAX方法加载:
var xml = http.responseXML;
请考虑以下示例xml片段:
<main>
<primary>
<enabled>true</enabled>
</primary>
<secondary>
<enabled>true</enabled>
</secondary>
</main>
Run Code Online (Sandbox Code Playgroud)
我想通过指定路径获取节点的值,如下所示:
var second_enabled = getNodeValueByPath('main/secondary/enabled', xml);
Run Code Online (Sandbox Code Playgroud)
做这样的事情我找不到任何简洁的方法.我似乎被迫在使用之后迭代节点集合getElementsByTagName等.
我将如何构造该方法,getNodeValueByPath或者在Javascript中是否有一些允许这样做的构造?
我不熟悉Javascript.
编辑:这是一个示例,显示我尝试使用XPath及其失败的方式:
XML:
<?xml version="1.0" ?>
<main xmlns="example.com">
<primary>
<enabled>true</enabled>
</primary>
<secondary>
<enabled>false</enabled>
</secondary>
</main>
Run Code Online (Sandbox Code Playgroud)
JavaScript :(这些只是相关的功能)
function useHttpResponse()
{
if (http.readyState == 4)
{
if(http.status == 200)
{
var xml = http.responseXML;
var evalue = getXMLValueByPath('/main/secondary/enabled', xml);
alert(evalue);
}
}
}
function getXMLValueByPath(nodepath, xml)
{
var result = xml.evaluate(nodepath, xml, …Run Code Online (Sandbox Code Playgroud)