gpt4 book ai didi

javascript - 使用jquery从chrome中的xml节点获取内部xml

转载 作者:行者123 更新时间:2023-11-28 09:55:38 28 4
gpt4 key购买 nike

我需要从 xml 节点获取内部 xml我的这段代码在 IE 中完美运行,但在 chrome 中我无法获取内部 xml

var result_xml = UXmlHelper.text2xml(result.d); // create xml document
var xmlStr = $(result_xml).text();//i need to get the inner xml but in chrome it //return the text.

在 IE 中返回:<NewDataSet>
<Screens>
<TName>Screens</TName>
<AppId>1</AppId>
<AppName>MyStore_1</AppName>
<AppType>4</AppType>
<ScreenName>ScrHome</ScreenName>
<ScrId>9</ScrId>
<ScrPosition>1</ScrPosition>
<TemplateId>1</TemplateId>
<Xml>
<Screen id="ScrHome" position="1" type="Scr">
<Properties>
<Id>ScrHome</Id>
<Name>Home</Name>
</Properties>
<Style />
......

在 Chrome 中返回:

Screens1MyStore_14ScrHome911ScrHomeHomeCont_MainContainerurl(../Images/iphone-4_RealSize-2.JPG)no-repeat#DCE6F7265507Cont_InnerMainContainer8365Yellow338relativeImgScrollUpImgScrollUp../icons/UpArrow-3-Small.PNG1515scrollStartUpPhScrContImgScrollUpscrollEndImgScrollUpabsolute-7402PhScrContrtltruexxxjustTestrtl#DCE6F7hidden9986relative13ArialrtlImgScrollDownImgScroll....

我所拥有的:

var result_xml = UXmlHelper.text2xml(result.d); $(result_xml).find('NewDataSet').find("Screens").each(function () { 
var parentScrNode = $(this).find("Xml");
});

在观察表达式中:

    parentScrNode:
e.fn.e.init[1] 0: Element
context: Element
length: 1
prevObject: e.fn.e.init[1]
selector: "Xml" proto: Object[0] –

观看 1:$(parentScrNode).html(): [异常: TypeError: 无法调用未定义的“替换”方法] 观看 2:

parentScrNode.html(): [Exception: TypeError: Cannot call method 'replace' of undefined] **Watch 3 :** 

parentScrNode.text(): "ScrHomeHomeCont_MainContainerurl(../Images/iphone-4_RealSize-2.JPG)......

有什么想法吗?

非常感谢。

最佳答案

在 jQuery 中,您应该能够像处理 HTML 一样处理 XML。这样你就可以直接查询你想要的内容了。

示例:http://jsfiddle.net/enqBg/

JS

alert($('<NewDataSet>  <Screens>    <TName>Screens</TName>    <AppId>1</AppId>    <AppName>MyStore_1</AppName>    <AppType>4</AppType>    <ScreenName>ScrHome</ScreenName>    <ScrId>9</ScrId>    <ScrPosition>1</ScrPosition>    <TemplateId>1</TemplateId>    <Xml>      <Screen id="ScrHome" position="1" type="Scr">        <Properties>          <Id>ScrHome</Id>          <Name>Home</Name>        </Properties>  </Screen>  </Xml>  </Screens>  </NewDataSet>').find('Screens').html());

编辑 1

如果您想要 NewDataSet 的直接子内容,则必须将整个内容包装在另一个父元素中,否则 jQuery 将返回 null 。类似 var YourWrappedXML = '<top><NewDataSet>...</NewDataSet></top>' 。那么您可以调用$(YourWrappedXML).find('NewDataSet').html()获取 NewDataSet 的内容

示例:http://jsfiddle.net/enqBg/1/

编辑2

下面是一个将 XML 附加到页面的示例。

示例:http://jsfiddle.net/enqBg/2/

编辑3

在我给你的例子中,我已经包装了 <NewDataSet>...</NewDataSet><top></top>导致 '<top><NewDataSet>...</NewDataSet></top>' 。通过包装它,我们现在可以在 find 方法中搜索 NewDataSet。否则 NewDataSet 是第一个元素。

如果你不包装它,那么你将不得不使用 $(result_xml).find('Screens')$(result_xml)<NewDataSet>

示例:http://jsfiddle.net/enqBg/3/

另外,我不确定是否result_xml是字符串或对象。据我所知,这只适用于字符串(尽管我可能是错的)。

关于javascript - 使用jquery从chrome中的xml节点获取内部xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10076392/

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