标签: xmlnode

如何在java的org.w3c.dom.Node中获取TEXT_NODE的标记名

在该接口的文档中,它声明文本节点都返回"#text"作为其名称而不是实际的标记名称.但是对于我正在做的事情,标签名称是必要的.

// I'm using the following imports
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;


// In the .xml input file
<country>US</country>  // This is a "text node" .getTextContent()
                       // returns "US", I need "country" and .getNodeName() 
                       // only returns "#text"
Run Code Online (Sandbox Code Playgroud)

我怎么能访问标签名称?这必须是某种可能的,我不介意一个hackish解决方案.

文档:

http://www.w3schools.com/dom/dom_nodetype.asp

http://www.w3.org/2003/01/dom2-javadoc/org/w3c/dom/Node.html

谢谢.

java w3c xmlnode xml-parsing

6
推荐指数
1
解决办法
7603
查看次数

使用 System.Xml.XmlDocument 时,是否可以从 System.Xml.XmlNode 获取行号/位置?

标题说明了一切...

是否有可能获得来自行号/位置System.Xml.XmlNode与工作时System.Xml.XmlDocument

我想要这些信息,以便我可以通知用户他们需要在 Xml 文件中查找特定信息的位置。我见过与XmlReaderon SO相关的类似问题,但没有真正回答我的问题。

我想我可以在 xml 文件中搜索OuterXml我感兴趣的节点,但这似乎很糟糕,如果该信息多次出现在文件中怎么办?一定会有更好的办法?

更新: 我正在使用以下方法加载我的 xml 文件:

xmlDoc = new XmlDocument();
xmlDoc.PreserveWhitespace = true;
xmlDoc.Load(filename);
Run Code Online (Sandbox Code Playgroud)

c# xml xmlnode .net-3.5

6
推荐指数
1
解决办法
2587
查看次数

节点js用于XMPP协议?

我想为移动应用程序开发即时消息,如whatsapp,nodejs作为我的后端.我已经阅读了XMPP协议并阅读了xmpp.org文档.

我提到了这个链接,我能够构建一些基本的XMPP功能,如创建和消息传递用户.但我仍然无法在nodejs中实现XMPP的完整功能.

那么:是否有任何节点js libaries可用于构建xmpp协议的完整功能,例如asmack?或者,如何通过XMLXMPP服务器发送调用?

javascript xmpp xmlnode node.js xmppframework

6
推荐指数
1
解决办法
1234
查看次数

XmlNode InnerXml与OuterXml

我遇到了一个奇怪的情况,希望有一个比我了解得更多的人可以帮助我解决这个问题。

我正在将图像插入Xml文档中,以便可以使用Microsoft Word打开它。作为其中的一部分,我需要添加一个映射到包含图像的元素的Xml'Relationship'。直截了当。

我添加的节点应如下所示:

<Relationship Id="rId6" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image1.png"  />
Run Code Online (Sandbox Code Playgroud)

但是,在最终的.doc文件中,该行显示如下:

<Relationship Id="rId6" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image1.png" xmlns="" />
Run Code Online (Sandbox Code Playgroud)

即它现在具有一个空的xmlns =“”属性。

这足以让Word相信文档已损坏并拒绝打开。如果我手动打开文件并删除该属性,则会打开文件。

显然,我想以编程方式删除它:-)所以我找到了父节点。这是我的理解有些模糊的地方。我相信OuterXml元素包含节点及其所有子元素的内容,而InnerXml仅包含子元素。

这就是我所看到的(请注意,转义字符是因为我是从Visual Studio的文本查看器中剪切下来的)。

外层Xml:

"<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">
<Relationship Id=\"rId3\"     Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings\" Target=\"webSettings.xml\" />
 <Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings\" Target=\"settings.xml\" />
<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\" />
<Relationship Id=\"rId5\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\" Target=\"theme/theme1.xml\" />
<Relationship Id=\"rId4\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable\" Target=\"fontTable.xml\" />
<Relationship Id=\"rId6\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\" Target=\"media/image1.png\" xmlns=\"\" />

</Relationships>"
Run Code Online (Sandbox Code Playgroud)

InnerXml:

"<Relationship Id=\"rId3\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings\" Target=\"webSettings.xml\" xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\" />
<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings\" Target=\"settings.xml\" xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\" />
<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\" xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\" />
<Relationship Id=\"rId5\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\" Target=\"theme/theme1.xml\" …
Run Code Online (Sandbox Code Playgroud)

xml innerxml xmlnode outerxml

6
推荐指数
1
解决办法
4107
查看次数

检查XSLT中是否存在XML节点

是否有更好的方法来查找XML节点是否存在(在XSLT中)而不是使用:

<xsl:choose>
  <xsl:when test="...........">body node exists</xsl:when>
  <xsl:otherwise>body node missing</xsl:otherwise>
</xsl:choose>
Run Code Online (Sandbox Code Playgroud)

xml xslt xmlnode

6
推荐指数
1
解决办法
1万
查看次数

比较C#中的两个XmlNode

有没有一种简单的方法来比较两个XML结构,以确定它们是否具有相同的结构和数据?

我有一个返回XmlNode的函数,我正在尝试为它编写单元测试.我将正确的XML结果存储在一个文件中.在测试中,我将文件加载到XmlDocument中,找到正确的XmlNode并与函数的结果进行比较.直接比较不起作用(如预期的那样),而且InnerXml也不起作用.我正在考虑从InnerXml中删除所有空格并比较它,或者编写我自己的比较来走树,但我不喜欢这两个选项.

.net c# xml xmlnode

5
推荐指数
2
解决办法
6222
查看次数

如何测试XML元素是否包含文本元素?

我想知道我怎样才能测试这种情况:

<foo>
    <bla1>xxx</bla1>
    <bla2>yyy</bla2>
    <bla3>zzz</bla3>
</foo>
Run Code Online (Sandbox Code Playgroud)

在while(reader.Read())中,当我在foo和bla1,bla2,bla3时放入XmlNodeType.Element ...当放入xxx,yyy,zzz中的.TextElement时.但是我可以测试bla的内部是否有文本值?

非常感谢

佩德罗杜索

c# xml xmlnode

5
推荐指数
1
解决办法
1727
查看次数

避免为每个转发器重新加载所有XML数据 - vb.net

我正在尝试使用xml数据在转发器中放置转发器.我让它完全按照我的意愿工作,但我使用的方法为每个转发器重新加载数据.我想我需要扮演一个XmlNode,但我会说实话 - 我不知道从哪里开始.

这是我的代码 - 如果可能的话,我想保留代码中的所有内容.

<script runat="server">

Public doc As New XmlDocument()

Public Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)

    If Not Page.IsPostBack then

        doc.Load(Server.MapPath("~/myxml/bookstore.xml"))

        Dim nodes As XmlNodeList = doc.SelectNodes("Bookings/Booking[@CLIENT_NO='SA33762']")
        rpMyRepeater.DataSource = nodes
        rpMyRepeater.DataBind()

    End If

End Sub

   Protected Sub itemDB(ByVal s As Object, ByVal e As RepeaterItemEventArgs)
      If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then

         Dim rpt As Repeater = CType(e.Item.FindControl("books"), Repeater)

         If Not (rpt Is Nothing) Then

            doc.Load(Server.MapPath("~/myxml/bookstore.xml"))

            Dim nodes2 As XmlNodeList = …
Run Code Online (Sandbox Code Playgroud)

xml vb.net asp.net xmlnode itemdatabound

5
推荐指数
0
解决办法
1247
查看次数

Groovy Node.depthFirst()返回节点和字符串列表?

我希望有人能指出我在这里遗漏的明显事物.我觉得我已经这样做了一百次,并且由于某种原因,今晚,这种行为让我陷入了困境.

我正在从公共API读取一些XML.我想从某个节点('body'中的所有内容)中提取所有文本,其中还包括各种子节点.简单的例子:

<xml>
    <metadata>
        <article>
            <body>
                <sec>
                    <title>A Title</title>
                    <p>
                        This contains 
                        <italic>italics</italic> 
                        and
                        <xref ref-type="bibr">xref's</xref>
                        .
                    </p>
                </sec>
                <sec>
                    <title>Second Title</title>
                </sec>
            </body>
        </article>
    </metadata>
</xml>
Run Code Online (Sandbox Code Playgroud)

所以最终我想遍历所需节点内的树(再次,'body')并提取其自然顺序中包含的所有文本.很简单,所以我只写了这个小的Groovy脚本......

def xmlParser = new XmlParser()
def xml = xmlParser.parseText(rawXml)
xml.metadata.article.body[0].depthFirst().each { node ->
    if(node.children().size() == 1) {
        println node.text()
    }   
}
Run Code Online (Sandbox Code Playgroud)

...继续炸毁"没有方法签名:java.lang.String.children()".所以我在想自己"等等,什么?我会发疯吗?" Node.depthFirst()应该只返回一个Node的List.我添加了一个'instanceof'检查,果然,我得到了Node对象和String对象的组合.具体而言,不在同一行中的实体内的行将作为String返回,即"This contains"和"and".其他一切都是节点(如预期的那样).

我可以轻松解决这个问题.然而,这似乎不是正确的行为,我希望有人可以指出我正确的方向.

xml groovy xmlnode xmlslurper xml-parsing

5
推荐指数
1
解决办法
7968
查看次数

来自VB.net中属性的Xml节点值

我喜欢XML

<Categories>
    <category name="a">
        <SubCategory>1</SubCategory>
        <SubCategoryName>name1</SubCategoryName>
    </category>
    <category name="b">
        <SubCategory>2</SubCategory>
        <SubCategoryName>name2</SubCategoryName>
    </category>
</Categories>
Run Code Online (Sandbox Code Playgroud)

我如何获得的值<SubCategoryName><category name="a">

xml vb.net xmlnode xml-attribute

5
推荐指数
1
解决办法
3万
查看次数